1

我已经运行了 react native 应用程序我已经使用了 2 个页面两个页面都使用了 listView 组件但是 1 个页面运行正确并且在另一个页面中使用了相同的功能但是它返回了以下错误在此处输入图像描述

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();

第 2 页列表查看

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

1 回答 1

1

data您在第 2 页上看到的内容有问题。

它是一个数组吗?如果是这样,您是否只是循环它并执行它unshift以使其反转?如果是这种情况,您可以使用reverse().

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

于 2017-02-28T13:08:44.987 回答