@galliard

Почему при обращении к массиву по индексу я получаю одно значение, а при выводе списка другое?

Делаю пробный проект на реакте, столкнулся с таким то ли багом, то ли фичей:
const [todos, setTodos] = useState<Todo[]>([])

  const toggleHandler = (id: number) => {
    setTodos(prevState => {
      const result = prevState.map(todo => {
        if (todo.id === id) {
          todo.completed = !todo.completed
        }
        return todo
      })

      console.log(result[0])
      console.log(result)

      return result
    })
  }


Результат такой:
604eb6aada729077611075.png

То есть при запросе объекта по индексу я получаю правильный объект с измененным состоянием, а при выводе всех объектов у меня они в предыдущем состоянии. Как такое вообще может быть?

Так же замечу, что при использовании метода forEach я получаю правильный объект с completed = true, pop тоже возвращает правильный объект. А вот в случае с map я получаю старый объект с completed = false.
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект