不变违规:VirtualizedList包含一个单元,该单元本身包含多个VirtualizedList

时间:2018-02-28 15:53:00

标签: react-native

完整的错误是:

Invariant Violation: A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list.

我的FlatList个组件中的每一个都有一个keyExtractor道具。来自List组件的react-native-elements内的每个项目都有一个关键支柱。

有人能否解释这个问题的含义?

6 个答案:

答案 0 :(得分:7)

如错误所示"您必须将唯一的listKey prop传递给每个兄弟列表。"像listKey =" someUniqueString"到FlatList为我修复了这个错误

答案 1 :(得分:1)

记住孩子,你的keyExtractor道具必须返回一个字符串

答案 2 :(得分:0)

使用嵌套平面列表时出现此错误。我使用listKey而不是keyExtractor。

**listKey={(item, index) => 'D' + index.toString()}**

答案 3 :(得分:0)

如果您将FaltList用作任何其他FlatList或SectionList的嵌套列表,则必须将唯一值传递给此prop listKey

  

listKey = {this._keyExtractor}

_keyExtractor = (item, index) => {
return this.props.index+"_"+index+'_'+item.id+"_"+moment().valueOf().toString(); 
}

答案 4 :(得分:0)

我收到此错误。但是使用唯一字符串

修复了
listKey={moment().valueOf().toString()}

答案 5 :(得分:0)

ListKey 中使用 keyExtractorFlatList 道具来防止此错误或警告

示例:

  listKey={(item, index) => `_key${index.toString()}`}
  keyExtractor={(item, index) => `_key${index.toString()}`}