react-nativeでのpromiseとAsyncStorageの実装

ボズモブ

私が持っているもの

2つの機能-

  1. getListInfo-ここでは、オブジェクトが存在するかどうかを確認しています。存在しない場合は、オブジェクトを作成してから返します。

  2. getInitialState-reactnativeのデフォルト関数。

達成したいこと

getInitialStateからgetListInfoを呼び出して、最終的にリストビューに入力してみてください。

しかし、何が起こっているのか-

値objが返される前でも、ページ全体のコードが実行されています。したがって、問題は、リストビューがデータを未定義として取得していることです。

私が知っていること

問題を解決するためにpromiseを使用すること。しかし、正しい方法ではありません。

実際のコード-

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関数)-promiseを使用しましたが、関数呼び出しでさえ失敗しています。したがって、コードのこの部分を無視して、上記のコードを評価してください。

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でリクエストを行います。promiseが完了すると、空の状態とsetStateを返します。componentWillMountまたはcomponentDidMountでリクエストを開始できます。react-nativeサイトでこの例https://facebook.github.io/react-native/docs/asyncstorage.html参照してくださいただし、ES7非同期構造を使用しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AsyncStorageでアプリのイントロを1回だけ(最初の実行時に)表示する方法-React Native

分類Dev

React Native / AsyncStorageのトラブルgetitem

分類Dev

JavaScriptCoreにあるときにReact NativeがXMLHttpRequestを再実装するのはなぜですか?

分類Dev

React Native アプリでの redux の実装が機能しない

分類Dev

このようなreact-nativeでjsクラスの命名を実装することとの違いは何ですか

分類Dev

react-nativeのAsyncStorageでflushGetRequestsを使用するのはいつですか?

分類Dev

React NativeのAsyncStorageの大きさはどれくらいですか?

分類Dev

AsyncStorage.getItem()。thenがReact Nativeで未定義なのはなぜですか?

分類Dev

React-adminの実装

分類Dev

react-input-maskの実装

分類Dev

Simple React HelloWorldの実装

分類Dev

Reactで前のボタンと次のボタンを実装する方法は?

分類Dev

RailsとReactでのプッシャーチャットの実装

分類Dev

React-native:報酬紹介の実装(招待して獲得)

分類Dev

React Native:DatePickerAndroidをどのように実装しますか?

分類Dev

react-reduxを使用したreact-nativeの実装でエラーが発生する

分類Dev

TrustKitiOSを使用したreact-nativeアプリケーションでのSSLピン留めの実装

分類Dev

TrustKitiOSを使用したreact-nativeアプリケーションでのSSLピン留めの実装

分類Dev

react-nativeで2つのドラッグ可能なフラットリストの検索を実装する

分類Dev

React:React-routerでReduxを実装する際の問題

分類Dev

JS React Native AsyncStorageからの不正な形式の呼び出し

分類Dev

react-native-firebaseの実装は、既存のプロジェクトでは不可能です(react-native @ .54)。gradleビルドが失敗しました

分類Dev

React native asyncstorage not working properly

分類Dev

React Native:状態とAsyncStorageを持つTextInput

分類Dev

react-nativeでJavaScriptModuleを実装するためのガイドはありますか?

分類Dev

React Native(iOSおよびAndroid)で広告を削除するための有料を実装する方法

分類Dev

React NativeのAsyncStorageの考えられる失敗のケースは何ですか?

分類Dev

React Native:AsyncStorageの結果に基づく条件付きrender()

分類Dev

React-Native-AsyncStorageの抽象化レイヤーを作成する

Related 関連記事

  1. 1

    AsyncStorageでアプリのイントロを1回だけ(最初の実行時に)表示する方法-React Native

  2. 2

    React Native / AsyncStorageのトラブルgetitem

  3. 3

    JavaScriptCoreにあるときにReact NativeがXMLHttpRequestを再実装するのはなぜですか?

  4. 4

    React Native アプリでの redux の実装が機能しない

  5. 5

    このようなreact-nativeでjsクラスの命名を実装することとの違いは何ですか

  6. 6

    react-nativeのAsyncStorageでflushGetRequestsを使用するのはいつですか?

  7. 7

    React NativeのAsyncStorageの大きさはどれくらいですか?

  8. 8

    AsyncStorage.getItem()。thenがReact Nativeで未定義なのはなぜですか?

  9. 9

    React-adminの実装

  10. 10

    react-input-maskの実装

  11. 11

    Simple React HelloWorldの実装

  12. 12

    Reactで前のボタンと次のボタンを実装する方法は?

  13. 13

    RailsとReactでのプッシャーチャットの実装

  14. 14

    React-native:報酬紹介の実装(招待して獲得)

  15. 15

    React Native:DatePickerAndroidをどのように実装しますか?

  16. 16

    react-reduxを使用したreact-nativeの実装でエラーが発生する

  17. 17

    TrustKitiOSを使用したreact-nativeアプリケーションでのSSLピン留めの実装

  18. 18

    TrustKitiOSを使用したreact-nativeアプリケーションでのSSLピン留めの実装

  19. 19

    react-nativeで2つのドラッグ可能なフラットリストの検索を実装する

  20. 20

    React:React-routerでReduxを実装する際の問題

  21. 21

    JS React Native AsyncStorageからの不正な形式の呼び出し

  22. 22

    react-native-firebaseの実装は、既存のプロジェクトでは不可能です(react-native @ .54)。gradleビルドが失敗しました

  23. 23

    React native asyncstorage not working properly

  24. 24

    React Native:状態とAsyncStorageを持つTextInput

  25. 25

    react-nativeでJavaScriptModuleを実装するためのガイドはありますか?

  26. 26

    React Native(iOSおよびAndroid)で広告を削除するための有料を実装する方法

  27. 27

    React NativeのAsyncStorageの考えられる失敗のケースは何ですか?

  28. 28

    React Native:AsyncStorageの結果に基づく条件付きrender()

  29. 29

    React-Native-AsyncStorageの抽象化レイヤーを作成する

ホットタグ

アーカイブ