Ale*_*y K 3 javascript redux 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 })
})
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能searchProductsCall使用lodash或其他东西去抖动?
Nar*_*igo 10
您需要先创建去抖动函数并调用该函数而不是您的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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3965 次 |
| 最近记录: |