【发布时间】:2017-08-01 12:27:28
【问题描述】:
我有几个简单的 FlatList,每个都显示部门和商店的自定义列表项。我得到每个孩子都应该有一个唯一的“关键”道具的错误,但我已经定义了一个 keyExtractor 并尝试将一个 key 道具添加到自定义列表行组件。即
<FlatList
style={_styles.list}
data={this.props.divisions}
extraData={this.state.chosenDivisionId}
keyExtractor={this._keyExtractor}
renderItem={this._renderDivisionItem}/>}
/>
_keyExtractor = (item, index) => item.id
_renderDivisionItem = ({ item, index }) => {
let typedItem: DivisionData = item;
return (
<ShopListItem
text={typedItem.name}
selected={this.state.chosenDivisionId === typedItem.id}
itemId={typedItem.id}
key={typedItem.id} /* Have tried with and without this */
onPress={itemId => this._updateStateForDivisionChosen(itemId)}
/>
);
};
为什么我仍然收到警告,我做错了什么? keyExtractor 方法在我的其他 FlatLists 上运行良好。当然,使用的 ID 是唯一的
【问题讨论】:
-
设置看起来正确,我能想到的唯一可能引发该错误的是,如果不是该数组中的每个对象都有 item.id
标签: reactjs react-native react-native-flatlist