使用Netinfo在异步存储中持久化API数据
我想在没有internet连接的情况下重新打开React本机应用程序时存储获取的API数据。 在没有internet连接的情况下打开应用程序时, 我使用NetInfo来确定连接是否正常,如果有连接,它会显示正常,否则如果没有连接(脱机),load ActivityIndicator会显示一点,然后什么也不显示 我使用了另一种逻辑,比如检查state是否为null,然后获取api并存储数据,否则从存储中获取数据,这样就可以了,但如果我使用react native run android重新启动应用程序,数据将永远不会出现 这是我的代码:使用Netinfo在异步存储中持久化API数据,api,react-native,Api,React Native,我想在没有internet连接的情况下重新打开React本机应用程序时存储获取的API数据。 在没有internet连接的情况下打开应用程序时, 我使用NetInfo来确定连接是否正常,如果有连接,它会显示正常,否则如果没有连接(脱机),load ActivityIndicator会显示一点,然后什么也不显示 我使用了另一种逻辑,比如检查state是否为null,然后获取api并存储数据,否则从存储中获取数据,这样就可以了,但如果我使用react native run android重新启动应用
NetInfo.fetch().then(state => {
if (state.isConnected) {
getArticles(this.state.url)
.then((data) => {
// console.log('connection ok!');
AsyncStorage.setItem('obj', JSON.stringify(data));
this.setState({
isLoading: false,
data: data,
});
//DATA SET TO STATE + ASYNCSTORAGE
})
}
else {
AsyncStorage.getItem('obj').then((value) => {
// console.log('connection not ok!');
this.setState({
isLoading: false,
data:JSON.parse(value)
});
});
}
});
}
这是我没有Netinfo的代码:
componentDidMount() {
if(this.state.data=='null'){
getArticles(this.state.url)
.then((data) => {
// console.log('connection ok!');
AsyncStorage.setItem('obj', JSON.stringify(data));
this.setState({
isLoading: false,
data: data,
});
//DATA SET TO STATE + ASYNCSTORAGE
})
}
else {
AsyncStorage.getItem('obj').then((value) => {
// console.log('connection not ok!');
this.setState({
isLoading: false,
data:JSON.parse(value)
});
});
}
}
我在android中添加了这一行
当我在控制台上记录state.isConnected时,即使在我的电脑上关闭internet,它也始终为真。
如果我关闭移动数据,它显示错误无法连接到debbuger