我是React的新手,並且正在撰寫無限滾動功能。正在訪問狀態的行爲是否違反Flux原則?
window.addEventListener('scroll', DutyActions.scrollDuties);
在每個滾動事件,我呼籲行動scrollDuties
,從服務器獲取數據。然後調用名爲loadDuties
的服務器操作將響應傳遞給存儲,並將其傳遞給視圖。
問題是,在快速滾動時,它會向API發出多次命中,因爲第二個滾動事件會在頁面上呈現setState({loading: true})
語句之前觸發。我認爲唯一的解決方案是讀取操作中的狀態,並且僅在loading
標誌爲假時才使ajax命中。
這會違反Flux原則嗎?
我編輯此爲清楚起見,但你要添加具有競爭條件的代碼,以便我們可以幫你更好一點。理想情況下,您應該提供一個可重複的最低限度情況。 –
我不會從Action內部讀取狀態,而是從組件內部讀取狀態。 –
您是否嘗試使用去抖功能? https://davidwalsh.name/javascript-debounce-function 對我來說,它似乎應該解決您的問題與多個事件命中。 – Vladiks