2017-07-11 1 views
0

que je reçois l'erreur suivante: Avertissement flattenChildren (...): deux enfants Rencontrés avec la même clé,Avertissement: flattenChildren (...): deux enfants Rencontrés avec la même clé,

Lors de l'utilisation React autochtone, listview

ici est mon code

// Render the row for the list view 
    _renderRow(rowData, sectionID, rowID, highlightRow) { 
     return (
      <TouchableHighlight underlayColor={'#ccc'} onPress={() => this._onPressProject({projectName:rowID.projectName, projectId:rowID.projectId})}> 
       <View> 
        <View style={styles.row}> 
         <Text style={styles.text}>{rowID.projectName}</Text> 
        </View> 
       </View> 
      </TouchableHighlight> 
     ); 
    } 

Répondre

0

vous devez définir l'hélice key du composant que vous mettez dans chaque ligne. pourrait probablement travailler avec ce projectId vous avez là comme ceci:

_renderRow(rowData, sectionID, rowID, highlightRow) { 
    return (
     <TouchableHighlight key={rowID.projectId} underlayColor={'#ccc'} onPress={() => this._onPressProject({projectName:rowID.projectName, projectId:rowID.projectId})}> 
      <View> 
       <View style={styles.row}> 
        <Text style={styles.text}>{rowID.projectName}</Text> 
       </View> 
      </View> 
     </TouchableHighlight> 
    ); 
} 
+0

Je l'ai fait que j'ai essayé à la fois la vue et TouchableHighlight et texte encore obtenir l'erreur –

0

Vous devez fournir key chaque fois une boucle à travers un élément à rendre. Chaque key devrait être unique.

Une "clé" est un attribut de chaîne spécial que vous devez inclure lors de la création de listes d'éléments.

Vous pouvez en savoir plus sur key from documentation

0

Donc, cela n'a rien à voir avec vue sur la liste de rendu ligne mais le code JS suivant, pas vraiment sûr pourquoi je devrais être en mesure de pousser un objet dans un tableau

for(j = 0; j < projectLength; j++) { 
       project = projects[j]; 
       // Add Unique Row ID to RowID Array for Section 
       rowIDs[i].push({proejctName:project.name. projectId:project.id}); 

       // Set Value for unique Section+Row Identifier that will be retrieved by getRowData 
       dataBlob[company.id + ':' + project.id] = project; 
      } 

Je fixe mais juste faire ce qui suit

rowIDs[i].push(project.name + ':' + project.id);