我有一个简单的用户列表
const [users, setUsers] = useState([
{ name: 'john', order: 0 },
{ name: 'mary', order: 1 },
{ name: 'Lou', order: 200 }
]);
我希望在同一操作中将order = 40设置为第一个元素,并将order = 12设置为第二个元素
setUsers(...users, ?, ?)
这个想法是使用功能更新。 https://reactjs.org/docs/hooks-reference.html#functional-updates
setUsers(prevState => {
let newState = [];
for(let i = 0; i < prevState.length; i++){
newState.push({...prevState[i], order: i === 0 ? 1 : i === 1 ? 0 : prevState[i].order});
}
return newState;
});