小编典典

React-Native ListView键

reactjs

我的应用程式收到警告,令我感到困扰。反应总是说我需要为每行添加键,但是无论如何我都不能添加这些键。

我的代码如下所示:

 <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

<TouchableWithoutFeedback
        key={this.props.key}
        style={styles.cardBtn}>

有人可以给我提示吗?还是应该忽略此警告?


阅读 233

收藏
2020-07-22

共1个答案

小编典典

实际上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

2020-07-22