From de109cc299f5b1a3113db5dd04baca8e1b0aebc6 Mon Sep 17 00:00:00 2001 From: Ken Date: Thu, 28 Feb 2019 21:03:14 -0800 Subject: [PATCH] incorporating feedback on immutable complete --- step1-07/demo/src/TodoApp.tsx | 5 +++-- step1-07/exercise/src/TodoApp.tsx | 5 +++-- step1-07/final/src/TodoApp.tsx | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) 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