【发布时间】:2018-08-09 09:15:20
【问题描述】:
checkState = async() => {
try {
const value = await AsyncStorage.getItem('access');
if (value !== null) {
this.setState({accessToken: value});
}
}
catch (error) {
// Error retrieving data
this.setState({accessToken: ''});
}
var that = this;
if(this.state.accessToken) {
axios.get(apicallurl,
{headers: {
'Authorization': 'Bearer ' + that.state.accessToken,
Accept: 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}})
.then(response => {
this.setState({userData: response.data.data[0]});
})
.catch(function (error) {
that.setState({accessToken: ''});
});
}
};
这是在 ComponentDidMount 中调用的函数。访问此组件时,我需要检查用户是否已登录。我得到了 accessToken 的值。它在第一个 if 语句中检查是否存在访问令牌。
问题是我没有得到响应,但我发现了错误。相同的代码可以在 iOS 上运行,如果远程 JS 调试打开,它甚至可以在 Android 上运行。但是,如果远程 JS 调试关闭,它就不起作用。提前致谢!
【问题讨论】:
-
async storagecatch 或axioscatch 中的错误来自哪里?以及accessToken在构造函数中的默认值或者它的初始状态是什么? -
来自Axios catch。 accessToken 的默认值为空字符串。
标签: reactjs react-native axios asyncstorage