我正在尝试在lodash中使用debbounce来延迟onChange,请参阅下面的代码。
import React, { useState, useEffect, useCallback } from "react";
import { TopBar } from "@shopify/polaris";
import { debounce } from "lodash";
function SearchBar() {
const [searchValue, setSearchValue] = useState("");
const handleSearchFieldChange = ((value:string) => {
setSearchValue(value);
});
const debounceLoadData = useCallback(debounce({searchValue} => fetchData, 1000), []);
useEffect(() => {
debounceLoadData();
console.log({searchValue})
}, [searchValue]);
function fetchData(value:string) {
console.log("searchValue " + value);
}
const searchFieldMarkup = (
<TopBar.SearchField
onChange={handleSearchFieldChange}
value={searchValue}
placeholder="Search Value"
/>
);
return <TopBar searchField={searchFieldMarkup} />;
}
一开始,我正在努力在fetchData函数中使用,但似乎由于范围,它无法读取它,尽管状态已更新,但它始终是空的。searchValue
因此,我试图从 中传递它,但我不知道我该如何做到这一点,因为在 useCallback 中是一个函数调用。我怎么能进入里面.debounceLoadDatasearchValuefetchDatadebounce
蓝山帝景
largeQ
相关分类