"Hooks can only be called inside of the body of a function component"甚至它位于函数组件内



我在函数组件中使用ReactHooksuseEffect。 但是,它返回错误,指出只能在函数组件的主体内部调用 Hooks

我的代码就像

const ChildComponent = (props) => {
useEffect(() => {
// call for tracking event 
}, [])
return (
<div>
this is an example
</div>
)
}

此示例代码是类组件的子组件。我想这不是问题。

class ParentComponent extends React.Component {
render() {
return <exampleCode />
}
}

反应和反应 DOM 版本是 16.8.6。 我该如何解决它?

一两个问题。就像其他人提到的,如果你提供它,你需要将组件的名称大写。当然,你可以有这样的东西,它完全放弃了:

export default ({ children }) => {
...
};

另一件事是,你给出了一个例子,你有useEffect((,但那里没有useState((,即没有钩子让它采取行动。为了清楚起见,我们假设您省略了它吗?如果您没有它,我怀疑这就是您遇到此错误的原因。

最新更新