У меня есть относительно простое приложение (мое первое), которое должно отображать информацию, полученную из запроса GraphQL и затем сохраненную в AsyncStorage.Все работает нормально, пока вы не отключите соединения data / Wifi и не перезапустите приложение - оно не будет загружать те локальные данные, которые были при включенной сети.Это то же самое на физическом или эмулируемом устройстве Android.
Нет вызовов для передачи данных, кроме случаев, когда пользователь изначально устанавливает свои данные.Приложение построено с версией 2.7.1 Expo & AWS Amplify.Я потратил несколько дней на эту последнюю проблему и получил то же поведение с Expo SecureStore & Amplify Cache и не хочу идти по пути обучения, включая Redux в таком простом приложении ...
//import from react native not react
import { AsyncStorage } from 'react-native'
//calling a function as app loads
componentDidMount() {
this._loadInitialState();
}
//retrieving String from AsyncStorage
_loadInitialState = async () => {
try {
const policyNum = await AsyncStorage.getItem('policyNum')
//...
} catch {
//...
}
//setting state
if (policyNum != null && policyNum != undefined) {
this.setState({ policyNum: policyNum })
//...
}
//the original setting of the item
setPolicyDetails = async () => {
if (this.state.policyNum != null) {
const policyNumber = this.state.policyNum
this.state.policyNumSet = true
try {
await AsyncStorage.setItem('policyNum', policyNumber)
} catch (err) {
//...
}
}
}