Aşağıdaki eylem yaratıcısı vardır:redoks eylem gönderilmesi bitmesini bekleyin
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}
}
Sorun appendItem önce scrollToNextItem
çalışır tamamladı ve kaydırma konumu yanlış olmak biter olmasıdır. Ben scrollToNextItem
çalıştırmadan önce bu setTimeout
script yürütme sonraki kene beklemek yapmak ekleyerek böyledir kanıtlayabilirim:
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
setTimeout(() => {
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}, 0);
}
}
nasıl bitirmek için appendItem
eylem için bekleyebilir?
this.setState({something: 'some thing'},() => {
console.log('something is set');
});
Ama dispatch
herhangi geri işlevsellik sağlamaz: Standart arazi tepki olarak ben sadece setState
geri arama kullanmak.
bunun gibi diyebilirsin bir söz haline appendItem sarın ve
argüman olarak
dispatch
geçebilir? –Ek öğe sadece düz bir işlemdir. –
O zaman eşzamanlı olmalı ve setTimeout'a ulaştığınız zaman, appendItem zaten bitmiş durumda. MikeRifgin –