diff --git a/step1-07/demo/src/TodoApp.tsx b/step1-07/demo/src/TodoApp.tsx index 7c67e87..dbf9f28 100644 --- a/step1-07/demo/src/TodoApp.tsx +++ b/step1-07/demo/src/TodoApp.tsx @@ -53,8 +53,9 @@ export class TodoApp extends React.Component { }; private _complete = id => { - const newTodos = { ...this.state.todos }; - newTodos[id].completed = !newTodos[id].completed; + const { todos } = this.state; + const todo = todos[id]; + const newTodos = { ...todos, [id]: { ...todo, completed: !todo.completed } }; this.setState({ todos: newTodos diff --git a/step1-07/exercise/src/TodoApp.tsx b/step1-07/exercise/src/TodoApp.tsx index c8ec119..0e575cf 100644 --- a/step1-07/exercise/src/TodoApp.tsx +++ b/step1-07/exercise/src/TodoApp.tsx @@ -55,8 +55,9 @@ export class TodoApp extends React.Component { - const newTodos = { ...this.state.todos }; - newTodos[id].completed = !newTodos[id].completed; + const { todos } = this.state; + const todo = todos[id]; + const newTodos = { ...todos, [id]: { ...todo, completed: !todo.completed } }; this.setState({ todos: newTodos diff --git a/step1-07/final/src/TodoApp.tsx b/step1-07/final/src/TodoApp.tsx index 6369456..1ec9fc8 100644 --- a/step1-07/final/src/TodoApp.tsx +++ b/step1-07/final/src/TodoApp.tsx @@ -36,8 +36,9 @@ export class TodoApp extends React.Component<{}, { todos: Todos; filter: FilterT }; private _complete = id => { - const newTodos = { ...this.state.todos }; - newTodos[id].completed = !newTodos[id].completed; + const { todos } = this.state; + const todo = todos[id]; + const newTodos = { ...todos, [id]: { ...todo, completed: !todo.completed } }; this.setState({ todos: newTodos