@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.
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
26 мая 2024, в 21:15
20000 руб./за проект
26 мая 2024, в 21:08
40000 руб./за проект
26 мая 2024, в 21:05
20000 руб./за проект