Lodash debounce error: Uncaught TypeError: Expected a function
Lodash debounce error: Uncaught TypeError: Expected a function
我正在尝试使用 debounce
函数来避免在 table 中输入和搜索内容时进行多次调用。这就是我所做的 -
onChange={(_event, searchText) => React.useCallback(debounce(void setSearchText(searchText), _searchDebounceWaitTime), [])}
它给出一个错误说明 Uncaught TypeError: Expected a function
我究竟做错了什么 ?我在网上找到的大多数解决方案都做了类似的事情。
注意:我也试过 -
onChange={(_event, searchText) => React.useCallback(debounce(searchText => setSearchText(searchText), _searchDebounceWaitTime), [])}
但是这次我得到了以下错误 - Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
请帮忙。
首先,如错误所述,反应钩子不能在 jsx 中。应该是这样的:
const onChange = React.useCallback((_event, searchText) => setSearchText(searchText), [])
//...
return (
<Component
//...
onChange={onChange}
/>
);
那么,对于去抖动,你正在寻找的是一个记忆函数:
const onChange = React.useMemo(() => debounce((_event, searchText) => setSearchText(searchText), _searchDebounceWaitTime), [])
我正在尝试使用 debounce
函数来避免在 table 中输入和搜索内容时进行多次调用。这就是我所做的 -
onChange={(_event, searchText) => React.useCallback(debounce(void setSearchText(searchText), _searchDebounceWaitTime), [])}
它给出一个错误说明 Uncaught TypeError: Expected a function
我究竟做错了什么 ?我在网上找到的大多数解决方案都做了类似的事情。
注意:我也试过 -
onChange={(_event, searchText) => React.useCallback(debounce(searchText => setSearchText(searchText), _searchDebounceWaitTime), [])}
但是这次我得到了以下错误 - Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
请帮忙。
首先,如错误所述,反应钩子不能在 jsx 中。应该是这样的:
const onChange = React.useCallback((_event, searchText) => setSearchText(searchText), [])
//...
return (
<Component
//...
onChange={onChange}
/>
);
那么,对于去抖动,你正在寻找的是一个记忆函数:
const onChange = React.useMemo(() => debounce((_event, searchText) => setSearchText(searchText), _searchDebounceWaitTime), [])