dataSource.rowIdentities undefined不是React-Native对象

时间:2016-12-01 15:52:32

标签: listview reactjs native

我尝试像这样创建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>

1 个答案:

答案 0 :(得分:1)

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

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