【发布时间】:2020-09-24 17:39:36
【问题描述】:
我有一个非常奇怪的问题。 长话短说,即时通讯使用带有上下文 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])
}
【问题讨论】:
-
两者都应该在过滤器函数返回新引用时工作。我认为你有其他代码中的问题......
-
我知道,但第一个不起作用.....
标签: javascript reactjs react-hooks use-state