2016-12-01 57 views
1

我试图创建listView这样的:dataSource.rowIdentities未定义不是对象发生反应,本地

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 is not an object

有什么问题吗?

这是我的listView代码:

<ListView 
    dataSource={this.state.dataSource} 
    renderRow={(rowData) => <View style={styles.catsList}>{rowData}</View>} 
    contentContainerStyle={styles.catsArea}> 
    {cats} 
</ListView> 
+0

renderRow假设返回一个View。 Try renderRow = {(rowData)=> return {rowData}} – Vkrm

回答

1

应该像<ListView ... />。没有孩子嵌套。

<ListView 
    dataSource={this.state.dataSource} 
    renderRow={(rowData) => <View style={styles.catsList}>{rowData}</View>} 
    contentContainerStyle={styles.catsArea} 
/> 
相关问题