我尝试像这样创建listView
:
var output = [];
for(var i = 0; i < response.length; i++) {
output.push(this.catBox(i, response[i]));
}
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
self.state = {
dataSource: ds.cloneWithRows(output)
};
catBox(index, info) {
let catName = info.catName;
let icon = info.icon;
return (
<View style={{flex:1}} key={index}>
<View style={styles.stretch}>
<Image style={styles.stretchRight} source={require('./img/stretch-right.png')} />
<Image style={styles.stretchLeft} source={require('./img/stretch-left.png')} />
</View>
</View>
);
}
但是我得到了错误:
dataSource.rowIdentities undefined不是对象
这里有什么问题?
这是我的listView
代码:
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <View style={styles.catsList}>{rowData}</View>}
contentContainerStyle={styles.catsArea}>
{cats}
</ListView>
答案 0 :(得分:1)
应该像<ListView ... />
。没有孩子嵌套。
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <View style={styles.catsList}>{rowData}</View>}
contentContainerStyle={styles.catsArea}
/>