调用异步函数以在身份验证期间存储访问令牌 反应本机



我创建了一个 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正确给出的访问令牌)。

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 编码过。

如果您的_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()时,请执行此操作。

最新更新