在注入和观察者的函数组件内部使用钩子-mobx

时间:2020-07-16 06:12:38

标签: reactjs react-hooks mobx mobx-react

我正在尝试将observer添加到我的组件中,但是这样做时出现错误

无效的挂钩调用。挂钩只能在功能组件的主体内部调用

在没有observer的情况下,并且仅与inject一起使用,一切正常,但是当商店发生更改时,我需要重新渲染组件。

我写的语法不正确吗,还是应该应用一些解决方法(例如将存储对象设置为本地状态并强制像这样强制重新渲染,或者重构代码以使用useStoreuseObserver)?

使用obserever(无效)

export default inject(stores => stores)(
    observer(props => {
       ...component with hooks usage...
 }))

没有obserever(有效但不能重新渲染)

export default inject(stores => stores)(props => {
       ...component with hooks usage...
  })

1 个答案:

答案 0 :(得分:1)

您的语法正确,一切正常。

不过,您需要检查mobx-react的版本。只有版本== 6才能与钩子一起使用。