Ich habe die folgende Aktion Schöpfer:Warten Sie eine Redux Aktion letztendlich beenden
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}
}
Problem ist, dass scrollToNextItem
läuft vor AppendItem beendet hat und die Scroll-Position endet nicht mehr korrekt sind. Ich kann beweisen dies der Fall ist durch eine setTimeout
Hinzufügen der Ausführung des Skripts für die nächste Zecke warten zu machen, bevor scrollToNextItem
ausgeführt wird:
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
setTimeout(() => {
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}, 0);
}
}
Wie kann ich für die appendItem
Aktion warten zu beenden? Im Standard-Land reagieren würde ich den setState
Rückruf benutzen Sie einfach:
this.setState({something: 'some thing'},() => {
console.log('something is set');
});
Aber dispatch
keine Rückruf Funktionalität.
Wie sieht AppendItem? –
Artikel anhängen ist nur eine einfache Aktion. –
Dann sollte es synchron sein und bis Sie SetTimeout erreichen, appendItem ist bereits fertig @mikeRifgin –