ReactJS useMemo 内部函数
ReactJS useMemo inside function
我有这个功能:
const handleSearch = (event) => {
const currentValue = event?.target?.value;
const filteredData = searchTable(currentValue, originalData);
setDataToTable(filteredData);
};
我尝试使用 useMemo()
来记忆 filteredData
的值,以便不执行功能 searchTable
因为它很慢。我在 handleSearch
函数中试过这个:
const filteredData = useMemo(() => searchTable(currentValue, originalData), [currentValue]);
但我得到的 Hooks can only be called inside of the body of a function component
消息是正确的。
我应该如何使用 useMemo
来处理我的案例?
您必须将搜索查询存储到 state variable
中,并使用 useMemo
和此变量来计算过滤后的数据。
function App() {
const [query, setQuery] = useState();
const filteredData = useMemo(() => searchTable(query, originalData), [query]);
function handleSearch(event) {
setQuery(event?.target?.value);
}
return (...)
}
我有这个功能:
const handleSearch = (event) => {
const currentValue = event?.target?.value;
const filteredData = searchTable(currentValue, originalData);
setDataToTable(filteredData);
};
我尝试使用 useMemo()
来记忆 filteredData
的值,以便不执行功能 searchTable
因为它很慢。我在 handleSearch
函数中试过这个:
const filteredData = useMemo(() => searchTable(currentValue, originalData), [currentValue]);
但我得到的 Hooks can only be called inside of the body of a function component
消息是正确的。
我应该如何使用 useMemo
来处理我的案例?
您必须将搜索查询存储到 state variable
中,并使用 useMemo
和此变量来计算过滤后的数据。
function App() {
const [query, setQuery] = useState();
const filteredData = useMemo(() => searchTable(query, originalData), [query]);
function handleSearch(event) {
setQuery(event?.target?.value);
}
return (...)
}