首页 > 解决方案 > 不能在回调中调用 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

标签: reactjstypescript

解决方案


你不应该使用 useCategory 来设置你的category状态,它会被 react 检测为它的钩子。将其重命名为setCategory将解决您的问题


推荐阅读