我正在学习react并尝试使用useEffect
。但是我得到了这个错误:
Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
为了解决第一个问题,我检查了react和react-dom版本,它们是相同的18.2.0
。为了解决第二个问题,我不认为我是(代码即将发布)。我不知道如何检查第三个问题,我不认为有,但又不确定。下面是我的代码:
import React, { useEffect } from "react";
useEffect(() => {
document.title = `Greetings to aaaa`;
}, []);
class CustomerOnboarding extends React.Component {
render() {
return (
<div></div>
);
}
}
export default CustomerOnboarding;
上面的代码抛出了Invalid hook call
错误,但是当我把useEffect
放到component类中时,我得到了一个稍微不同的错误:
我不知道这是否有关系,但是我使用react with ruby on rails,我有其他的组件工作的很好,没有钩子,有什么想法吗?
2条答案
按热度按时间wztqucjr1#
useEffect用于功能组件。对于类组件,您需要使用componentDidUpdate和componentDidMount
在您的情况下:
要使用useEffect,您可以将组件更改为功能组件:
643ylb082#
或者你可以把你的组件转换成如下的函数