Da die "yield" -Anweisung innerhalb eines Callbacks nicht erlaubt ist, wie kann ich die "put" -Funktion von redux-saga innerhalb eines Callbacks verwenden?Wie man in redux-saga innerhalb eines Rückrufs "nachgibt"?
würde Ich mag den folgenden Rückruf haben:
function onDownloadFileProgress(progress) {
yield put({type: ACTIONS.S_PROGRESS, progress})
}
Dies funktioniert nicht und endet in „unerwartetem Token“, denn Ausbeute in einer einfachen Funktion ist nicht erlaubt. Sonst kann ich keinen Callback als "Funktion *" weitergeben, die Ausbeute ermöglichen würde. ES6 scheint hier kaputt zu sein.
Ich habe gelesen, dass Redux-Saga bietet einige Funktionen namens "Kanäle", aber um ehrlich zu sein, ich habe es nicht bekommen. Ich habe einige Male über diese Kanäle und den Beispielcode gelesen, aber in allen Beispielen haben sie sehr schwierige und unterschiedliche Probleme gelöst, nicht meinen einfachen Fall und am Ende des Tages bin ich dort oben angekommen.
Kann mir jemand eine Lösung sagen, wie man mit diesem Problem umgehen kann?
Der ganze Kontext:
function onDownloadFileProgress(progress) {
yield put({type: ACTIONS.S_PROGRESS, progress})
}
export function * loadFile(id) {
let url = `media/files/${id}`;
const tempFilename = RNFS.CachesDirectoryPath + '/' + id;
const download = RNFS.downloadFile({
fromUrl: url,
toFile: tempFilename,
background: false,
progressDivider: 10,
progress: onDownloadFileProgress,
})
yield download.promise;
}
Es ist nicht erlaubt <-> Sie können nicht – Bergi
was wollen Sie damit sagen? macht es einen Unterschied? – delete