У меня есть приложение React-Native с магазином Redux. У меня есть запрос на выборку, и я хочу установить тайм-аут, если запрос на выборку становится длинным и отображать сообщение об ошибке.
Мой вопрос: как установить тайм-аут и отменить запрос? Потому что в противном случае запрос может быть успешным после того, как появится сообщение об ошибке и отобразится ответ и успешное сообщение.
В RN 0,60 имеется AbortController, но как использовать его с хранилищем с избыточностью? Или есть другой способ с булевым флагом? Документы Redux гласят:
Один из способов сделать это - создать функцию, которую вы возвращаете своим создателям действий. Затем запускайте только «успех», пока эта функция не вызывается.
У вас есть пример для этого?
Я не могу показать весь код, но я пытаюсь объяснить.
Мое действие имеет этот метод:
export function fetchData(type, id) {
return (dispatch, state) => {
return fetch(APIURL, {
method: 'GET',
headers: headers
})
.then /*handle Response and response errors */
}
}
И я вызываю функцию в моем компоненте:
<Dialog
action={async =>
{async () => {
try {
await this.props.fetchMyData();
await openUrlInBrowser(URL);
} catch (e) {
this.showError();
}
}}>
function mapDispatchToProps(dispatch: ThunkDispatch){
fetchMyData: () => {
return dispatch(fetchData("data"));
}
}
Спасибо за помощь !