我创建了一个 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()
时,请执行此操作。