反应本机 - 列表视图问题

时间:2017-02-28 12:11:21

标签: react-native react-native-listview

我已经运行了反应本机应用程序我已经使用了2个页面两个页面都使用了listView组件,但是1个页面正确运行,并且在另一个页面中使用了相同的功能,但它返回了以下错误enter image description here

StaticRenderer.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

第1页代码

AsyncStorage.getAllKeys().then((value) => {
        var arr = [];
        for(var i=0;i<value.length;i++){
            if(value[i] != "userName"){
                arr.unshift(value[i]);
            }
        }
        this.setState({
            ds: arr
        })
        this.setState({
            dataSource:this.state.dataSource.cloneWithRows(this.state.ds),
        })

     }).done();

第2页代码

AsyncStorage.getItem("userName").then((value) => {
        var data = JSON.parse(value);
        var arr = [];
        if(data != null){
            for(var i=0;i<data.length;i++){
                arr.unshift(data[i]);
            }
        }
        this.setState({
            ds: arr
        })
        this.setState({
            dataSource:this.state.dataSource.cloneWithRows(this.state.ds),
        })
     }).done();

Page 2 listView

<ListView
                        dataSource = {this.state.dataSource}
                        renderRow = {this.renderRow.bind(this)}
                        enableEmptySections = {true}>
                    </ListView>

1 个答案:

答案 0 :(得分:1)

第2页上的data出了点问题。

是阵列吗?如果是这样,你是否只是循环它并执行unshift使其反转?如果是这种情况,您可以使用reverse()

我的猜测是,JSON.parse(value)返回对象。只需console.log arr变量,看看它是否是dataSource所期望的。