如何解决useState,使用contexAPI反应钩子
我有一个非常奇怪的问题。 长话短说,即时消息与上下文API配合使用。 当我尝试使用过滤器从状态中删除项目时,使用状态功能无法启动
我的数据如下所示: enter image description here
我的代码如下所示,问题出在deleteUser函数上:(仅添加了相关部分):
const UserContextProvider = (props) => {
const[users,setUsers] = useState([])
const addUser = (user) =>{
setUsers([...users,user])
}
const updateUser = (obj) =>{
deleteUser(obj.UserName)
addUser(obj)
}
const deleteUser = (us) =>{
//not working
setUsers(users.filter(u=>u.UserName!=us))
//working
let temp = [...users]
temp = temp.filter(el=>el.UserName!=us)
setUsers([...temp])
}
解决方法
请尝试...
const deleteUser = (us) =>{
setUsers(previousUsers => previousUsers.filter(u => u.UserName !== us))
}
,
您的问题是您没有使用!==而是写了!=
const deleteUser = (us) =>{
//Add an equal sign it will work
setUsers(users.filter(u=>u.UserName!==us))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。