IN
Size: a a a
IN
IN
EM
function holdTodos(index) {
setTodos(todos.map((todo, i) => {
if(i === index ) {
todo.completed = !todo.completed
return todo
} else {
return todo
}
}))
}
АБ
function holdTodos(index) {
setTodos(todos.map((todo, i) => {
if(i === index ) {
todo.completed = !todo.completed
return todo
} else {
return todo
}
}))
}
const holdTodos = (idx) => setTodos(todos => todos.map(todo, i) => i === idx ? {...todo, completed: !todo.completed} :
todo)
setTodos
чтобы получать всегда актуальный массивEM
EM
АБ
todo.completed = !todo.completed
мутация, ты не создаешь новый объект, ты мутируешь старый. ссылка сохраняется, а значит там где ожидается обновление путем ссылочного сравнения - обновления не будет.EM
todo.completed = !todo.completed
мутация, ты не создаешь новый объект, ты мутируешь старый. ссылка сохраняется, а значит там где ожидается обновление путем ссылочного сравнения - обновления не будет.A
АБ
V
A
V
const apple = { weight: 10 }
contt cherry = apple
cherry.weight = 5
G
RS
AZ
IN
AZ
AZ
IN