0

我创建了一个 React-native 应用程序,使用 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 中(在这种情况下,我想存储credentials.accessToken上面函数中正确给出的 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

为什么我的函数没有在这里定义?

这是我的第一个 react-native 应用程序,我以前从未使用过 react 编码。

4

1 回答 1

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()在另一个文件中使用时都执行此操作。

于 2017-08-28T12:21:03.283 回答