Таблица React - не обновляет содержимое

Я пытаюсь обновить содержимое таблицы, созданной с помощью этой библиотеки react-table. Однако по какой-то причине это не работает, хотя я меняю состояние параметра, который я передаю в Компонент.

<ReactTable
   data={this.state.data}
   columns={this.state.headers}
/>

И функция, которая изменяет данные:

  let data= this.state.data;
  for (var i = 0; i < data.length; i++) {
    data[i].name="TEST"
  }
  this.setState({data: data})

Я вижу, что данные изменились, но содержимое таблицы осталось прежним.


person Grzegorz Brzęczyszczykiewicz    schedule 19.08.2018    source источник
comment
В качестве предложения не назначайте данные своего состояния такой переменной. Используйте Object.assign или синтаксис расширения: let data = [ ...this.state.data ] Кроме того, не изменяйте значение ключа таким образом, поскольку, если вы измените таким образом, ваш исходный объект тоже мутирует. Используйте .map, как было предложено в ответе @Shishir Arora. Это относится к синтаксису распространения, поскольку он делает поверхностную копию.   -  person devserkan    schedule 20.08.2018


Ответы (1)


let data= this.state.data;
const newData = data.map(d=>({...d, name:"Test"}));
this.setState({data: newData})

Используйте приведенный выше код. Причина: React не видит мутацию.

person Shishir Arora    schedule 19.08.2018