itsmatrik
@itsmatrik
Я - человек.

Как изменить массив в usestate?

63f5006f3dfce265733853.png63f5099f29d85349233578.png63f5007b9b6b0136662854.png

Есть шахматная доска и кот, который лежит в одной из клеток. Нужно написать функцию, которая будет делать новое состояние для catposition и будет изменять только первый или второй элемент массива. Например в функции up результат должен быть [5, 5], то есть изменится только второй элемент. Хотел сделать как на второй картинке, но при нажатии кот пропадает. На третьем скрине показано как идет проверка позиции кота.
  • Вопрос задан
  • 367 просмотров
Решения вопроса 1
Заменять массив целиком на новый. См. документацию (на англ.).

Если коротко: никаких мутаций. arr[1] = 2; – нельзя.

function up() {
  const newPosition = catPosition.slice(); // сделали новый массив, копию
  newPosition[1]++;
  setCatPosition(newPosition);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы