Я пытаюсь сохранить в асинхронном хранилище некоторые данные, когда телефон не подключен к Интернету.Вернувшись в оперативный режим, я извлекаю эти данные с помощью getData ().
У меня есть список некоторых документов на домашней странице, затем, когда я выбираю один из них, он переходит на следующую страницу и отображает содержимое.После этого я могу отправить этот документ по электронной почтеТаким образом, проблема здесь: в первый раз он получает только один раз, но когда я пытаюсь вернуться к списку документов, которые я показываю, и выбрать один из них, я пытаюсь отправить, когда в автономном режиме, а затем, когда он снова в сети, он отправляетодин и тот же дваждыИ сколько раз я возвращаюсь и пытаюсь заполнить новый документ, он будет посылать его равным количеству раз, когда я отправлял электронные письма.
Вот мой код ...
Хранение данных:
storeData = async (data) => {
try {
await AsyncStorage.setItem('key', JSON.stringify(data));
} catch (e) {
console.log("Some error happened", e);
}
}
восстановление после возврата в оперативный режим:
> getData = async () => {
>
> try {
> const value = await AsyncStorage.getItem('key')
>
> let valueParsed = JSON.parse(value);
>
>
> if (value != null) {
> fetch(this.state.url, {
> method: 'POST',
> headers: {
> Accept: 'application/json',
> 'Content-Type': 'application/json',
> 'Connection': 'Keep-Alive',
> },
> credentials: 'include',
> body: JSON.stringify(valueParsed)
> })
> await AsyncStorage.clear();
> }
> } catch (e) {
> // error reading value
> }
> }
и componentDidMount () :
componentDidMount() { //checking if there is internet connection
NetInfo.isConnected.addEventListener('connectionChange', (isConnected) => {
if (isConnected) {
this.getData();
}
})
}