Реагирует на собственную функцию 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()