useState,使用contexAPI反应钩子

时间:2020-09-24 17:39:36

标签: javascript reactjs react-hooks use-state

我有一个非常奇怪的问题。 长话短说,即时消息与上下文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]) 
}

2 个答案:

答案 0 :(得分:1)

请尝试...

const deleteUser = (us) =>{
 setUsers(previousUsers => previousUsers.filter(u => u.UserName !== us))
}

答案 1 :(得分:1)

您的问题是您没有使用!==而是写了!=

const deleteUser = (us) =>{
 //Add an equal sign it will work
 setUsers(users.filter(u=>u.UserName!==us))