2017-08-28 4 views
0

を私は(下の認証コードサンプルで)Auth0認証を使用して、反応させ、ネイティブアプリケーションを作成しました:コール非同期機能が反応ネイティブ

_onLogin() { 
    auth0 
     .webAuth 
     .authorize({scope: 'openid email', audience: 'https://' + credentials.domain + '/userinfo'}) 
     .then(credentials => Alert.alert(
        'Login Success', 
        'AccessToken: ' + credentials.accessToken, 
        [ 
        {text: 'OK', onPress:() => console.log('OK Pressed')}, 
        ], 
        { cancelable: false }, 
        Actions.home() 
       )) 
     .catch(error => console.log(error)); 
    } 

と私はこの単純な機能を持っていますAsyncStorageにいくつかの値を格納するために使用されます(この場合は、上記の関数で正しく与えられたaccessTokenをcredentials.accessTokenで保存します)。

async _storeSomeValues(item, selectedValue) { 
    try { 
     await AsyncStorage.setItem(item, selectedValue); 
    } catch (error) { 
     console.log('AsyncStorage error: ' + error.message); 
    } 
    } 

私は、ポストの多くをチェック.then(...)ステートメントにこの機能を使用する多くの方法を試してみたが、それは私に、このエラーを表示し、常にだしました:

ReferenceError: _storeSomeValues is not defined

私の関数が定義されていないのはなぜここに?

これは私の最初の反応ネイティブアプリケーションです。私は反応する前にコード化されたことはありません。

+0

「_storeSomeValues」はどこで呼び出されますか? – kytwb

+0

私の '_storeSomeValues'関数を .then(...)ステートメントに呼び出す方法は本当に分かりません。 私はそれを呼び出すために多くの方法を試しましたが、常にエラーが表示されます。 –

+0

私は問題を見つけました、私は矢印機能のような_onLogin関数を宣言する必要があります。 '_onLogin =()=> {// ...}' 私は ' –

答えて

0

_storeSomeValuesが別のファイルにある場合は、ファイルからエクスポートして別のファイルにインポートする必要があります。

file1.js

export async function _storeSomeValues(item, selectedValue) { 
    try { 
     await AsyncStorage.setItem(item, selectedValue); 
    } catch (error) { 
     console.log('AsyncStorage error: ' + error.message); 
    } 
    } 

で最初にして、あなたのfile2.js

import { _storeSomeValues } from 'path/to/file1.js'; 

に続いて、あなたのファイルの任意の場所にそれを使用することができます。別のファイルで_storeSopeValues()を使用するたびにこれを行います。

+0

マイ' _storeSomeValues'関数が同じファイルのようになる 'this._storeSomeValues(paramsは....)のような' _storeSomeValues'を呼び出すことができ'_onLogin'関数です。 –