javascript - 我如何正确地去抖动 mapDispatchToProps 或 redux 动作?
问题描述
我有 redux 动作:
export const setSearchText = payload => ({
type: SEARCH_ACTION,
payload,
});
并遵循 mapDispatchToPros:
const mapDispatchToProps = dispatch => ({
onChange: (...args) => setSearchText(...args),
});
我怎样才能去抖动?
解决方案
onChange: (...args) => debounce(() => dispatch(setSearchText(...args)), 500)
这是去抖动功能。
const debounce = (func, wait) => {
let timeout;
return function() {
const context = this;
const args = arguments;
const later = function() {
timeout = null;
func.apply(context, args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
}