我的应用程式收到警告,令我感到困扰。反应总是说我需要为每行添加键,但是无论如何我都不能添加这些键。
我的代码如下所示:
<ListView style={styles.listView} dataSource={this.state.favs} renderSeparator={() => <View style={styles.listSeparator}/>} renderRow={(rowData,i) => <Card data={rowData} onPress={this.onCardPress.bind(this,rowData)} /> } />
我尝试像这样在我的组件上添加键,<Card key={rowData.id}/>/ 并且我还尝试从组件内部的道具中获取键,并将其添加到我的情况下该组件的第一个元素中,即TouchbleOpacity
<Card key={rowData.id}/>/
<TouchableWithoutFeedback key={this.props.key} style={styles.cardBtn}>
有人可以给我提示吗?还是应该忽略此警告?
实际上renderRow有四个参数(rowData, sectionID, rowID, highlightRow),您需要第三个而不是第二个。
renderRow
(rowData, sectionID, rowID, highlightRow)
renderRow={(rowData, sectionID, rowID) => <Card key={rowID} data={rowData} onPress={this.onCardPress.bind(this,rowData)} /> }
参考:facebook.github.io/react- native/docs/listview.html#renderrow