Задать вопрос

Как обновить двумерный массив в state?

Массив вида:
[[0, 0, 0]
[0, 0, 0]
[0, 0, 0]]

Пробую обновить:
this.setState(prevState => {
            return {
                arr: {
                    ...prevState.arr,
                    [posX]: [
                        ...prevState.arr[posX],
                        [posY] = 1
                    ]
                }
            }
        })


или сделать проще

const arr = [...this.state.arr];

        arr[posX][posY] = 1;

        this.setState({
            arr: arr
        })
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
return {
  arr: {

Если arr массив, почему пытаетесь превратить его в объект?

this.setState(({ arr }) => ({
  arr: arr.map((n, i) => i === posX
    ? n.map((m, j) => j === posY ? 1 : m)
    : n
  ),
}));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы