Я разрабатываю приложение, в котором есть вызов API, используя fetch API . Все работает нормально, но в ios всякий раз, когда происходит какой-либо вызов API, во время процесса приложение переходит в фоновое состояние, а когда снова переходит в состояние переднего плана, выдает ошибку Исключение при сбое сетевого запроса . Даже после исключения API успешно выполняет свою задачу, за исключением того, что он не возвращает никакого ответа, поэтому не может выполнить какое-либо действие на основе ответа.
Пример кода
return fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
//after api call, we will get response here, so pointer should come here
return responseJson.movies;
})
.catch((error) => {
//after api call when app comes from background to foreground, pointer points here. So unable to get the response.
//Api is being hit and response is sent from server end. The data is updated after the api call.
console.error(error);
});
}
Конфигурация
"dependencies": {
"lodash": "^4.17.11",
"prop-types": "^15.6.2",
"react": "16.8.3",
"react-native": "0.59.0",
"react-native-elements": "^0.19.1",
"react-native-firebase": "~5.3.1",
"react-native-gesture-handler": "^1.1.0",
"react-native-keyboard-aware-scroll-view": "^0.8.0",
"react-native-loading-spinner-overlay": "^1.0.1",
"react-native-modal-datetime-picker": "^7.4.0",
"react-native-reanimated": "^1.2.0",
"react-navigation": "3.0.9",
"react-redux": "^6.0.0",
"redux": "^4.0.1"
},
"devDependencies": {
"babel-jest": "23.6.0",
"babel-polyfill": "^6.26.0",
"babel-preset-react-native": "5.0.2",
"metro-react-native-babel-preset": "^0.54.0",
"jest": "23.6.0",
"jetifier": "^1.6.4",
"react-test-renderer": "16.4.1"
}
Пожалуйста, подскажите, что происходит не так. Заранее спасибо.