我正在尝试使用React前端编写SPA,而我编写的非常少的代码却抱怨无效的钩子调用。
我了解,根据错误消息,此错误有三个主要原因:
- 您可能使用了不匹配的React和渲染器版本(例如React DOM)
- 您可能正在违反挂钩规则
- 您可能在同一应用中拥有多个React副本
我检查了npm ls react
和npm ls react-dom
,他们都报告了各自软件包的单独安装,版本为16.13.1,所以我不认为这是原因1或原因3。对于违反规则的情况,鉴于代码仅是这样,这似乎是不可能的:
import { useState } from "react";
import ReactDOM from "react-dom";
const Main = () => {
const [count, setCount] = useState(0);
return(
<>
</>
);
};
const reactRoot = document.getElementById("react-root");
ReactDOM.render(Main(), reactRoot);
在我看来,这似乎是一个非常好的功能组件,并且显然没有循环或条件。
答案 0 :(得分:1)
正如评论中指出的那样,我的意思是使用JSX标签<Main />
而不是调用Main()
。