Reactjs 如何使用钩子更新数组中一个对象的状态
我想更新数组中一个对象的状态,而不是更新整个数组的状态Reactjs 如何使用钩子更新数组中一个对象的状态,reactjs,react-native,expo,Reactjs,React Native,Expo,我想更新数组中一个对象的状态,而不是更新整个数组的状态 const [users, setUsers] = useState; const data = [ { id: 1, name: "John", activeAccount: 1 }, { id: 2, name: "Mary", activeAccount: 1 }, { id: 3, name: "Max", activeAccount: 1 } ]
const [users, setUsers] = useState;
const data = [
{
id: 1,
name: "John",
activeAccount: 1
},
{
id: 2,
name: "Mary",
activeAccount: 1
},
{
id: 3,
name: "Max",
activeAccount: 1
}
]
例如,John停用了他的帐户,activeAccount的状态应更新为0。
所以只有一个对象应该被更新,因为他没有来自其他用户的数据,并且不能更新所有数组——举个例子,为什么我在这里使用user.id
我也试着用
有人能帮忙吗?有解决方案吗?呼叫时可能出现问题
setUsers({
users: update(...users, {index: {activeAccount: {$set: 0 }}})
})
如果您使用以下方式初始化您的状态:
const data = [
{
id: 1,
name: "John",
activeAccount: 1
},
{
id: 2,
name: "Mary",
activeAccount: 1
},
{
id: 3,
name: "Max",
activeAccount: 1
}
]
const [users, setUsers] = useState(data);
然后需要调用不带对象的setUsers:
setUsers(
update(...users, {index: {activeAccount: {$set: 0 }}})
)
解决方案:
const index = users.findIndex(obj => obj.id === user.id);
setUsers([...users, users[index].activateAccount = 0])
你好,我想这应该对你有帮助。
setUsers(
update(...users, {index: {activeAccount: {$set: 0 }}})
)
const index = users.findIndex(obj => obj.id === user.id);
setUsers([...users, users[index].activateAccount = 0])