Реагирует на собственную функцию slice() с неопределенной ошибкой

Я хочу обновить строку списка просмотра, для чего я пытаюсь нарезать источник данных списка просмотра, но возникает ошибка:

this.state.dataSource.slice не является функцией. (В 'this.state.dataSource.slice()' this.state.dataSource.slice не определено)

И вот мой код:

let newArray = this.state.dataSource.slice();
newArray[indexToUpdate] = {
  //Here I am updating my values.
};
this.setState({
  dataSource: this.state.dataSource.cloneWithRows(newArray),
});

Дайте мне знать, если в моем коде есть ошибки или что-то не так, что я сделал.

1 ответ

Решение

this.state.dataSource это не массив, поэтому вы не можете сделать slice() на источник данных. Это выглядит так

{ _rowHasChanged: [Function: rowHasChanged],
  _getRowData: [Function: defaultGetRowData],
  _sectionHeaderHasChanged: [Function],
  _getSectionHeaderData: [Function: defaultGetSectionHeaderData],
  _dataBlob: { s1: [ 'row 1', 'row 2' ] },
  _dirtyRows: [ [ true, true ] ],
  _dirtySections: [ true ],
  _cachedRowCount: 2,
  rowIdentities: [ [ '0', '1' ] ],
  sectionIdentities: [ 's1' ] 
}

Ваш необходимый массив находится в _dataBlob ключ этого объекта.

Примечание: он работает нормально и обновляет список данных источника, используя строку ниже

this.state.dataSource._dataBlob.s1.slice()
Другие вопросы по тегам