Доброе время суток
какая-то чертовщина, заблудился в 3 соснах.
todo.a увеличивается не на 1, а на два. Данный кусок кода срабатывает два раза.
toggleHander исходя и логов срабатывает один раз, в newTodo перед return нужный результат
но уже в useEffect (который также срабатывает один раз исходя из логов) результат двойной
Код:
|
export interface ITodo{
title:string,
id:number,
completed:boolean,
a:number
}
.................
const [todos, setTodos]=useState<ITodo[]>([])
useEffect(()=>{
console.log(todos)
},[todos])
const toggleHander=(id:number)=>{
setTodos(prev=>{
const newTodo:ITodo[]=prev.map(todo=>{
if(todo.id === id){
console.log('+')
todo.completed = !todo.completed
todo.a=todo.a+1
// todo.completed=false
}else{console.log('-')}
// console.log(todo)
return todo
})
newTodo.forEach(e=>console.log(e))
return newTodo
})
}
const |