2017-11-16 14 views
0

非同期ストレージの値をネイティブに保存しています。しかし、私が値を取得しようとするとnullを返します。以下は私のコードです。どんな助けもありがとう。コンソールに表示される値は正常ですが、非同期ストレージはnullを返します。非同期ストレージがnull値を返す

var userID = responseJson[0].UserId; 
console.log("User id"+userID +userID.toString()) 
AsyncStorage.setItem("UserId",userID.toString());    
AsyncStorage.getItem("UserId", (UserId) => { 
    console.log("get user details"+UserId) 
}); 

答えて

0

これまでのところ私は非同期方式だと理解していますので、保存してすぐには取得できません。 コールバック関数で取得する必要があります。下のスニペットを参照してください:あなたの例では

AsyncStorage.setItem('UID123', JSON.stringify(UID123_object),() => { 
    AsyncStorage.mergeItem('UID123', JSON.stringify(UID123_delta),() => { 
    AsyncStorage.getItem('UID123', (err, result) => { 
     console.log(result); 
    }); 
    }); 
}); 

Snippet source

それのようになります:Asyncstorageのデータは、文字列の形式で保存する必要があり

var userID = responseJson[0].UserId; 
      console.log("User id"+userID +userID.toString()) 
      AsyncStorage.setItem("UserId",userID.toString(),() => { 
       AsyncStorage.getItem("UserId", (UserId) => { 
        console.log("get user details"+UserId)} 
      });    
+0

他の画面から取得しようとするとnullが返されます –

+0

これを試しましたか? AsyncStorage.setItem( '@ MySuperStore:key'、 '私はそれを保存します'); }キャッチ(エラー){ //エラー保存データ } '正しく保存しているのか、エラーがあるのか​​をチェックするには? –

0

。結果(データ)のみ(関係なく、かどうか、その変数やオブジェクトの)文字列の形式になります

var userID = responseJson[0].UserId; 
     console.log("User id"+userID +userID.toString()) 
     AsyncStorage.setItem("UserId",JSON.stringify(userID));    
     AsyncStorage.getItem("UserId", (err, result) => { 
      console.log("get user details"+ result)} 

注こと:君はそれを行うことができます。オブジェクトとして使用するには、オブジェクトとして解析する必要があります。 JSON.parse(結果)を使用してこれを行うことができます。

関連する問題