簡體   English   中英

React-native ListView鍵

[英]React-native ListView keys

我在我的應用程序上收到了一個警告我的警告。 反應一直說我需要為每一行添加密鑰,但無論我不能添加這些密鑰。

我的代碼看起來像這樣:

 <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}/>/ ,我也嘗試從組件中的props中獲取密鑰,並將其添加到我的案例中組件的第一個元素中是一個TouchbleOpacity

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

有人可以給我一個提示嗎? 或者我應該忽略這個警告?

實際上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

正如Gabriel Lopes在評論中所說,一個常見的錯誤是忘記向分隔符添加鍵。

因此,請確保添加它們。 您可以從傳遞給分隔符函數的參數構建它們:

renderSeparator(sectionId, rowId, adjacentRowHighlighted) {
  return (<View key={`sep:${sectionId}:${rowId}`} />);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM