11

ログインフォームがあり、フォームの値を投稿できます。POST リクエストが成功すると、API から認証トークンが返されます。後で参照できるように、このトークンをローカル ストレージに保存する必要があります。この認証トークンを保存するために、AsyncStorage を使用しています。AsyncStorage.setItem(STORAGE_KEY, responseData.auth_token);setItem メソッドを使用してデータを保存しました。

これをコンソールに記録すると、次のようになります。

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

このような promise オブジェクトとして返されます

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

: 物体

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

ところで、彼らが使用したドキュメントでは待機しています。それを使ってみましたが、ページが読み込まれません。スクリーンショットを添付してください。ここに画像の説明を入力

4

3 に答える 3

19

Async/Await を使用:

async _getStorageValue(){
  var value = await AsyncStorage.getItem('ITEM_NAME')
  return value
}
于 2016-09-03T20:55:45.047 に答える