reactjs - 不能在回调中调用 React Hook “useCategory”
问题描述
这是我的代码
import React, { FC, useState,useMemo } from "react";
const FormSearch: FC<{ params: string }> = ({
params
}) => {
const [category, useCategory] = useState<string>("All");
const [search, setSearch] = useState<string>("");
useMemo(() => {
const searchParams = new URLSearchParams(params);
if (!!searchParams.get("Categories")&&!!searchParams.get("Search")) {
useCategory(`${searchParams.get("Categories")}`);
setSearch(`${searchParams.get("Search")}`);
} else {
setSearch("");
useCategory("All")
}
}, [params]);
return (
<div>1000</div>
);
};
我收到这些错误
第 16 行:不能在回调中调用 React Hook “useCategory”。React Hooks 必须在 React 函数组件或自定义 React Hook 函数中调用 react-hooks/rules-of-hooks 第 20 行:不能在回调中调用 React Hook “useCategory”。React Hooks 必须在 React 函数组件或自定义 React Hook 函数中调用 react-hooks/rules-of-hooks
解决方案
你不应该使用 useCategory 来设置你的category
状态,它会被 react 检测为它的钩子。将其重命名为setCategory
将解决您的问题
推荐阅读
- r - 使用点作为参数
- boost - 理解 asio::async_read 行为
- javascript - async _flush 不会触发结束事件
- python - 如何通过pyspark中的列查找第一个值和最后一个值之间的差异
- python - 从 GitHub 安装 Scikit-learn 扩展
- html - html 代码在 Outlook 电子邮件中的输出与在浏览器中的输出不同
- python - 如何从熊猫数据框行创建列表?
- c# - 循环中的线程池队列用户工作项 | 拆分为子线程
- vb.net - 实体框架 SaveChanges() 不起作用?
- ios - Swift 如何让拨号器打开并显示电话号码?