即使在函数组件内部,“挂钩也只能在函数组件的主体内部调用”

时间:2019-12-13 09:07:09

标签: reactjs react-hooks

我在功能组件内部使用ReactHooks useEffect。 但是,它返回错误,指出挂钩只能在函数组件的主体内部调用

我的代码就像

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

,此exampleCode是类component的子组件。我想这不是问题。

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

react and react DOM版本是16.8.6。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

一两个问题。就像其他人提到的那样,如果提供了组件名称,则需要将其大写。您当然可以拥有类似这样的东西,而这完全可以避免:

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

另一件事是,您给了示例,其中有useEffect(),但那里没有useState(),即没有钩子可对其执行操作。为简单起见,我们是否可以假设您忽略了这一点?如果没有,我怀疑这就是您遇到此错误的原因。