我正在尝试创建一个简单的组件,以使用React Redux Hook useDispatch
派遣操作 - 我会遇到错误。我已经将组件缩小到发生误差的位置。当调用uderIspatch函数时,它会发生。
import { useDispatch } from 'react-redux'
const MyComp = () => {
useDispatch()
return null
}
export default MyComp
这是我在Dev Console中看到的错误:
Uncaught TypeError: Object(...) is not a function
at MyComp (MyComp.js?cc4c:4)
at renderWithHooks (react-dom.development.js?d018:12938)
at mountIndeterminateComponent (react-dom.development.js?d018:15020)
at beginWork (react-dom.development.js?d018:15625)
at performUnitOfWork (react-dom.development.js?d018:19312)
at workLoop (react-dom.development.js?d018:19352)
at HTMLUnknownElement.callCallback (react-dom.development.js?d018:149)
at Object.invokeGuardedCallbackDev (react-dom.development.js?d018:199)
at invokeGuardedCallback (react-dom.development.js?d018:256)
at replayUnitOfWork (react-dom.development.js?d018:18578)
我已经将其修剪得更远,因此React树中没有父母。
const store = configureStore()
ReactDOM.render(
<Provider store={store}>
<MyComp />
</Provider>,
document.getElementById('root')
)
模块版本
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^7.1.0",
在我的情况下,我正在这样做:
import { useDispatch } from 'react'
而不是:
import { useDispatch } from 'react-redux'
🤦♂️
我使它起作用 - 我认为只需停止,构建,重新启动应用程序即可。我没想到useDispatch
需要这个,所以我无法解释为什么会有所帮助。
注释 - 我确实尝试了useSelector
,但确实有效,我可以在React -Redux导入后输出使用Elector变量以控制台(underispatch的console.log未定义(。那时我可以说我是正确版本的React,这可能是我系统的问题。
所以,如果您有类似的问题。尝试一个完整的React应用程序重新启动。确认您正在加载正确的版本。
我正在使用@reduxjs/toolkit
,并且假设已经安装了react-redux
。
我也有类似的问题,修复程序是更新" react-redux"。初始软件包。json就是这样:
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-redux": "^6.0.1",
安装react-redux@7.2.0
从
升级"react-redux": "6.0.1",
to
"react-redux": "7.2.0",
为我修复了它
为概述运行npm outdated
,然后npm update react-redux
更新redux
我使用@reduxjs/toolkit;我通过删除" react-redux"修复了此操作。