Riz*_*lle 3 javascript object reactjs redux
所以我用一个对象作为 Todo 列表创建了 React Todo App。通过键删除项目与delete 一起使用,但让我返回 boolean 而不是 Object 与其余项目。
deleteTodo = (id) => {
const { todos } = this.state;
this.setState({
todos: delete todos[id],
});
Run Code Online (Sandbox Code Playgroud)
我在控制台中得到这个:
Warning: Failed prop type: Invalid prop `todos` of type `boolean` supplied to `TodoList`, expected an object.
Run Code Online (Sandbox Code Playgroud)
使用 Redux 时应该使用不可变操作。你不应该直接改变你的状态。
为此,如果您的待办事项在对象中,您可以使用解构从待办事项中排除您的待办事项:
const { todos } = this.state;
const { [id]: _, ...newTodos } = todos;
this.setState({
todos: newTodos
});
Run Code Online (Sandbox Code Playgroud)
如果待办事项在列表中,并且由于您无法通过数组中的索引解构项目,请使用slice方法,该方法不会修改数组,但会返回修改后的副本:
const { todos } = this.state;
this.setState({
todos: [...todos.slice(0, id), ...todos.slice(id + 1)];
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |