Ich habe ein Problem mit der Steuerung der Ausführung meiner fetch() - Funktionen. Insbesondere möchte ich vermeiden, dass der Benutzer fetch() Anfragen spam.Wann findet fetch() in Redux statt?
Meine Idee war, dies innerhalb der Middleware zu tun, aber wenn die Aktion mit einem fetch() ankommt, ist die Nutzlast bereits ein Versprechen.
Also meine Frage ist, wann genau wird eine fetch() bereits ausgeführt?
Wenn es darauf ankommt, sieht mein Code ungefähr so aus.
Eltern Aktion:
{
return (dispatch) => {
if (mode === 'MY') {
dispatch(myAction(...);
}
dispatch(someOtherAction(...));
}
}
Meine Aktion:
{
type: 'TYPE',
promise: post(url, payload)
}
My post-Methode:
{
console.log('sending POST');
return fetch(url, {
//fetch info
});
}
Meine Middleware:
{
return next => action => {
const { promise, //other fields } = action;
//Already a promise here.
if (!promise) {
return next(action);
}
return promise.then(
//Processing data
);
};
}
Als ich die Redux-Dokumente durchblätterte, stolperte ich über diese Zeile "... Wenn ein Aktionsersteller eine Funktion zurückgibt, wird diese Funktion von der Redux Thunk Middleware ausgeführt ...". Bedeutet das dann, dass mein Problem von Redux-Thunk verursacht wird? So dass Redux-Thunk, sobald meine Aktion ausgelöst wird, sofort meine Funktion ausführt, bevor sie meine benutzerdefinierte Middleware erreicht? –