如何更新react.js中的状态?
问题描述:
我想问是否有更好的方法来更新react.js中的状态。如何更新react.js中的状态?
我在下面写了这段代码,但只是更新状态需要很多步骤,我不知道我是否以正确的方式做。
有什么建议吗?
immutable.js怎么样?我知道它的名字,但我从来没有使用它,并且不太了解它。
代码
toggleTodoStatus(todoId) {
const todosListForUpdate = [...this.state.todos];
const indexForUpdate = this.state.todos.findIndex((todo) => {
return todo.id === todoId;
});
const todoForUpdate = todosListForUpdate[indexForUpdate];
todoForUpdate.isDone = !todoForUpdate.isDone;
this.setState({
todos: [...todosListForUpdate.slice(0, indexForUpdate), todoForUpdate, ...todosListForUpdate.slice(indexForUpdate + 1)]
})
}
答
您正在使用一个额外的步骤,你不需要。直接设置值到克隆的对象和restting回状态将工作
toggleTodoStatus(todoId) {
const todosListForUpdate = [...this.state.todos];
const indexForUpdate = this.state.todos.findIndex((todo) => {
return todo.id === todoId;
});
todosListForUpdate[indexForUpdate].isDone = !todosListForUpdate[indexForUpdate].isDone;
this.setState({
todos: todosListForUpdate
})
}
'常量newTodos = this.state.todos.map(T => t.id === todoId?{...吨,isDone :!(t.isDone}:t);'(截至今天 - 由于对象传播需要'stage-3') – zerkms