我有一个搜索输入,它更新查询参数,并在每个onChange事件上触发该特定路由的React路由器加载器中的API调用。我如何防止在每次击键时调用API,并实现类似防反跳效果的东西(当用户1000毫秒内未键入时,则调用API或更新查询参数)。注意:我知道有一个去抖钩和逻辑,但我感兴趣的是,如果它是有可能实现与React路由器只。
更新查询参数逻辑组件:
const [searchParams, setSearchParams] = useSearchParams();
const countryQuery = searchParams.get("country") || "";
const handleOnChange = (event: React.ChangeEvent<HTMLInputElement>) => {
event.preventDefault();
setSearchParams(
{ country: event.target.value }
);
};
装载机:
export const loader = async ({ request }: LoaderFunctionArgs) => {
const url = new URL(request.url);
const countryQuery = url.searchParams.get("country") || "";
const countries = getCountries(countryQuery);
return countries;
};
我希望防止不必要的API调用。
1条答案
按热度按时间7nbnzgx91#
您可以尝试从lodash使用去抖动
在安装器上使用的更简单版本
如果在句柄查找中需要引用其他变量,可以使用Ref
您可以尝试使用
debouncedOnChange
代替handleOnChange,希望对你有帮助