我收到以下错误警告:flattenChildren(...):遇到两个孩子用同一把钥匙,
使用React Native时,listview
这是我的代码
// 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>
);
}
答案 0 :(得分:0)
您需要设置每行中放置的组件的key
道具。
可能可以使用你在那里的那个projectId
:
_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>
);
}
答案 1 :(得分:0)
答案 2 :(得分:0)
所以这与列表视图渲染行无关,但是下面的JS代码,不确定为什么我应该能够将对象推入数组
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;
}
我修好但只是做了以下
rowIDs[i].push(project.name + ':' + project.id);