Ich habe eine React Native-Anwendung mit Redux-Aktionen und Reducer. Ich verwende den Redux-Thunk-Versand, um die asyncron-Anrufe abzuwarten. Es ist eine Aktion in meiner Anwendung:Redux Axios Anfrage Abbruch
export const getObjects = (id, page) => {
return (dispatch) => {
axios.get(`URL`)
.then(response => {
dispatch({ type: OBJECTS, payload: response });
}).catch(error => {
throw new Error(`Error: objects -> ${error}`);
});
};
};
, die richtig funktioniert, aber manchmal der Benutzer klicken Sie auf den Zurück-Taste, bevor die Aktion beendet die Anfrage, und ich muss es gelöscht werden. Wie kann ich es in einer getrennten Aktion tun? Ich read this, aber ich habe keine Option in Axios für den Abbruch gefunden. Ich lese über die Axios cancellation, aber es ist eine Cancel-Methode für den Funktionsumfang erstellen und ich kann nicht zurückkehren, da die JS nicht mehrere Rückgaben unterstützen.
Was ist der beste Weg, um Axios Anfrage in einer anderen Redux Aktion abzubrechen?
Eine Alternative, um das zu tun, was Sie wollen, ist, dass die Axios die Anfrage vervollständigen, aber im Zustand, der eine andere Aktion absetzt (z. B. setCanceled), ein Flag 'cancelled: true' gesetzt wird. Wenn die Anforderung abgeschlossen ist und die Zusage verrechnet ist, prüfen Sie zunächst das abgebrochene Flag. Wenn es wahr ist, werden Sie die Erfolgsaktion nicht versenden. Löst es deinen Fall? –