【问题标题】:React Native slice() function undefined errorReact Native slice() 函数未定义错误
【发布时间】:2017-03-21 12:29:48
【问题描述】:

我想更新我的列表视图行,因为我正在尝试对列表视图数据源进行切片,但它引发以下错误:

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),
});

如果我的代码有任何错误或我做错了什么,请告诉我。

【问题讨论】:

  • @trevor 但我已经看到了大多数与更新列表视图相关的示例和链接。我已经获得了这种常用方法,例如使用 slice() 方法。 那么我无法为我的 dataSource 对象使用 slice() 方法或其未定义的原因是什么?

标签: react-native react-native-ios react-native-listview


【解决方案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()

【讨论】:

  • 让我打印我的 dataSource 对象。
  • 所以我需要这样调用,this.state.dataSource._dataBlob.slice()对吗??
  • 你可能需要调用它,因为 this.state.dataSource._dataBlob.s1.slice() s1,s2 代表部分。详情可以参考facebook.github.io/react-native/releases/0.26/docs/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 2016-02-18
  • 1970-01-01
相关资源
最近更新 更多