在react-native中实现promise和AsyncStorage

牛zz

我有的

2个功能

  1. getListInfo-在这里,我正在检查对象是否存在,如果不存在,请创建它,然后将其返回。

  2. getInitialState-react native的默认功能。

我想要达到的目标

尝试从getInitialState调用getListInfo,并最终填充listview。

但是,发生了什么事-

甚至在返回值obj之前,整个页面的代码都将被执行。因此,问题在于,列表视图正在获取未定义的数据。

我知道的

用承诺来解决问题。但是,不是正确的方法。

实际代码-

getListInfo : function() {
    AsyncStorage.getItem('listobject').then((obj) => {
    if(obj == undefined)
    {
        var obj1 ={};
        obj1.data ={};
        obj1.data.isdirty = true;
        console.log("obj1 = "+ JSON.stringify(obj1));
        AsyncStorage.setItem('listobject',obj1);
        obj = AsyncStorage.getItem('listobject');
        console.log("obj = "+ JSON.stringify(obj));
    }
    if(obj.data.isdirty)
    {
        obj.data.isdirty = false;
        AsyncStorage.setItem('listobject',JSON.stringify(obj));
        return AsyncStorage.getItem('listobject');
    }
}).done();
},


  getInitialState: function() {
    applistglobal = this.checkLocalStore();

    var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    return {
      dataSource: ds.cloneWithRows(this._genRows({})),
    };
  },


render: function() {
    /* BLAH BLAH BLAH */
}

Promise部分代码(getInitialState函数)-我使用了promises,但是,即使函数调用也失败了。因此,请忽略代码的这一部分并评估上面的代码。

getInitialState: function() {
    var promise = new Promise(function (resolve, reject) {
      resolve(this.getListInfo());
    });

    promise.then((listobject) => {
      console.log("getInitialState listobject "+listobject);
    })

    promise.catch((error) => {
      console.log("ERROR"+error);
    })

    var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    return {
      dataSource: ds.cloneWithRows(this._genRows({})),
    };
  },
特工搜寻

设置方法不是通常的做法。即在getInitialState中进行请求。承诺完成后,返回空状态和setState。您可以在componentWillMount或componentDidMount中启动请求。在react-native网站上查看此示例https://facebook.github.io/react-native/docs/asyncstorage.html他们正在使用ES7异步构造。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在react-native中实现promise和AsyncStorage

来自分类Dev

React Native 中的 AsyncStorage 问题

来自分类Dev

React Native - AsyncStorage,等待和同步

来自分类Dev

React Native:用Java在AsyncStorage中编写

来自分类Dev

React-native 中 AsyncStorage 有问题

来自分类Dev

React Native 中的 AsyncStorage 单例

来自分类Dev

可能未处理的 Promise Rejection (id: 0) React Native AsyncStorage

来自分类Dev

AsyncStorage - 错误(React Native)

来自分类Dev

React Native-如何查看AsyncStorage中存储了什么?

来自分类Dev

无法从React Native中的AsyncStorage返回令牌

来自分类Dev

检查AsyncStorage中的值后,导出react native stackNavigator

来自分类Dev

从React Native中的AsyncStorage获取价值后呈现组件

来自分类Dev

如何在 React Native 中初始化 AsyncStorage 变量?

来自分类Dev

从AsyncStorage清除项目-React Native

来自分类Dev

React Native-NavigatorIOS和TabBarIOS实现

来自分类Dev

React Native-NavigatorIOS和TabBarIOS实现

来自分类Dev

在React Native中实现Safari View Controller

来自分类Dev

在React-Native Android中实现ImagePicker

来自分类Dev

如何将React中的localStorage代码转换为React Native中的AsyncStorage?

来自分类Dev

React Native:通过 AsyncStorage 保存图像 URI 并在不同的 React 导航屏幕中重新加载

来自分类Dev

用于图像的React-Native AsyncStorage

来自分类Dev

AsyncStorage.getItem返回undefined:React Native

来自分类Dev

React Native AsyncStorage在渲染后获取数据

来自分类Dev

React Native AsyncStorage异步函数返回

来自分类Dev

如何向React Native AsyncStorage添加项目

来自分类Dev

React-Native 从 AsyncStorage 返回视图

来自分类Dev

使用react native和redux实现FB登录

来自分类Dev

React-Native Redux-AsyncStorage中未定义this.props

来自分类Dev

如何使用AsyncStorage React Native将一条记录存储到现有阵列中

Related 相关文章

  1. 1

    在react-native中实现promise和AsyncStorage

  2. 2

    React Native 中的 AsyncStorage 问题

  3. 3

    React Native - AsyncStorage,等待和同步

  4. 4

    React Native:用Java在AsyncStorage中编写

  5. 5

    React-native 中 AsyncStorage 有问题

  6. 6

    React Native 中的 AsyncStorage 单例

  7. 7

    可能未处理的 Promise Rejection (id: 0) React Native AsyncStorage

  8. 8

    AsyncStorage - 错误(React Native)

  9. 9

    React Native-如何查看AsyncStorage中存储了什么?

  10. 10

    无法从React Native中的AsyncStorage返回令牌

  11. 11

    检查AsyncStorage中的值后,导出react native stackNavigator

  12. 12

    从React Native中的AsyncStorage获取价值后呈现组件

  13. 13

    如何在 React Native 中初始化 AsyncStorage 变量?

  14. 14

    从AsyncStorage清除项目-React Native

  15. 15

    React Native-NavigatorIOS和TabBarIOS实现

  16. 16

    React Native-NavigatorIOS和TabBarIOS实现

  17. 17

    在React Native中实现Safari View Controller

  18. 18

    在React-Native Android中实现ImagePicker

  19. 19

    如何将React中的localStorage代码转换为React Native中的AsyncStorage?

  20. 20

    React Native:通过 AsyncStorage 保存图像 URI 并在不同的 React 导航屏幕中重新加载

  21. 21

    用于图像的React-Native AsyncStorage

  22. 22

    AsyncStorage.getItem返回undefined:React Native

  23. 23

    React Native AsyncStorage在渲染后获取数据

  24. 24

    React Native AsyncStorage异步函数返回

  25. 25

    如何向React Native AsyncStorage添加项目

  26. 26

    React-Native 从 AsyncStorage 返回视图

  27. 27

    使用react native和redux实现FB登录

  28. 28

    React-Native Redux-AsyncStorage中未定义this.props

  29. 29

    如何使用AsyncStorage React Native将一条记录存储到现有阵列中

热门标签

归档