簡體   English   中英

redux thunk內部的反跳方法

[英]debounce method inside redux thunk

我在內部使用異步方法進行操作,我想對其進行反跳

export const onSearchChange = query => dispach => {
    if (query === "") {
        dispach({ type: SOME_TYPE, payload: query })
    } else {
        dispach({ type: SOME_TYPE, payload: query })
        searchProductsCall(query).then(payload => {
            dispach({ type: SOME_OTHER_TYPE, payload })
        })
    }
}

我該怎么抖searchProductsCall使用lodash或其他什么東西?

您需要先創建去抖動的函數,然后調用該函數,而不是searchProductsCall

以下代碼應確保在所有情況下都立即調用第一次調度(它可能會更改UI?),並且只有在反跳之后以及有非空查詢時才調用searchProductsCall

export const debouncedSearchProductsCall = _.debounce((query, dispatch) => {
    if (query !== "") {
        searchProductsCall(query).then(payload => {
            dispatch({ type: SOME_OTHER_TYPE, payload })
        });
    }
}, 200);

export const onSearchChange = query => dispatch => {
    dispatch({ type: SOME_TYPE, payload: query });
    debouncedSearchProductsCall(query, dispatch);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM