2016-02-05 15 views
9

मुझे अपने ऐप पर चेतावनी मिल रही है जो मुझे परेशान करता है। प्रतिक्रिया कहती रहती है कि मुझे प्रत्येक पंक्ति के लिए कुंजी जोड़ने की ज़रूरत है, लेकिन इससे कोई फर्क नहीं पड़ता कि मैं इन चाबियों को जोड़ नहीं सकता हूं।प्रतिक्रिया-मूल सूची दृश्य कुंजी

मेरे कोड इस तरह दिखता है:

<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}/>/ की तरह मेरे घटक पर कुंजी जोड़ने के लिए कोशिश करते हैं और मैं अपने घटक के अंदर रंगमंच की सामग्री से महत्वपूर्ण हो जाते हैं और पहले में यह जोड़ने की कोशिश की मेरे मामले पर घटक का तत्व एक टचबल ओपेसिटी

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

कोई मुझे संकेत दे सकता है? या मुझे इस चेतावनी को अनदेखा करना चाहिए?

उत्तर

16

असल में 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

+4

धन्यवाद @Cherniv, मूर्खतापूर्ण गलती, मैंने यह भी महसूस मैं renderSeparator के लिए एक महत्वपूर्ण जोड़ने की जरूरत है –

+0

@GabrielLopes आप का स्वागत है – Cherniv

6

के रूप में उसकी comment में गेब्रियल लोपेज ने कहा, एक आम गलती विभाजक के लिए कुंजी जोड़ना भूल है।

तो सुनिश्चित करें कि वे जोड़े गए हैं। आप उन्हें तर्क विभाजक समारोह के लिए पारित से निर्माण कर सकते हैं:

renderSeparator(sectionId, rowId, adjacentRowHighlighted) { 
    return (<View key={`sep:${sectionId}:${rowId}`} />); 
} 
संबंधित मुद्दे