2016-09-03 14 views
0

私はログインフォームを持っていて、フォームの値を投稿することができます。 POSTリクエストが成功すると、APIから返された認証トークンが取得されます。私はこのトークンを将来の参照のためにいくつかのローカルストレージに保存する必要があります。この認証トークンを保存するために私はAsyncStorageを使用しています。私はAsyncStorage.setItem(STORAGE_KEY, responseData.auth_token); setItemメソッドを使ってデータを保存しました。ReactネイティブAsyncStorage Getitemは約束していない値を返す

私がすることによってこれをログコンソール場合:それはこの

Promise {_45: 0, _81: 0, _65: null, _54: null} 
_45 
: 
0 
_54 
: 
null 
_65 
: 
"efcc06f00eeec0b529b8" 
_81 
: 
1 
__proto__ 

のような約束をオブジェクトとして返します

console.log(AsyncStorage.setItem(STORAGE_KEY));

: オブジェクト

は、どのように私はからの正確な値を得ることができますAsyncStorage.getItemメソッド?ところでドキュメントでは、使用している

このされた私の方法を取得

fetch('http://54.255.201.241/drivers', { 
    method: 'POST', 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json' 
    }, 
    body: JSON.stringify({ 
     first_name: this.state.firstName, 
     mobile_number: this.state.mobileNumber, 
     vehicle_number: this.state.vehicleNumber, 
     vehicle_type_id: 1, 
    }) 
    }).then((response) => response.json()).then((responseData) => { 
    if (JSON.stringify(responseData.mobile_number) == (this.state.mobileNumber)) 
    { 
     AsyncStorage.setItem(STORAGE_KEY, responseData.auth_token); 
     console.log(AsyncStorage.getItem(STORAGE_KEY)); 
     this.props.navigator.push({id: 'Otp'}) 
    } 
    else 
    { 
     Alert.alert("SignUp Failed","Mobile number already taken.") 
    } 
    }) 
    .done(); 

が待っています。私はそれを使用しようとしましたが、ページが読み込まれていません。スクリーンショットが添付されています。非同期/待つを使用してenter image description here

+0

をはい、ちょうど 'then'か、あなたは'非同期function'にある場合、 'await'を使用してください。 – Bergi

+0

はい - それを使用するか、または必要な場合:フェッチコールを表示してください。 – dv3

答えて

3

async _getStorageValue(){ 
    var value = await AsyncStorage.getItem('ITEM_NAME') 
    return value 
} 
関連する問題