Mar*_*rom 6 reactjs redux react-redux react-hooks
我正在尝试创建一个简单的组件来使用 React Redux 钩子调度一个动作useDispatch- 我收到了一个错误。我已将组件修剪到发生错误的位置。它发生在调用 useDispatch 函数时。
import { useDispatch } from 'react-redux'
const MyComp = () => {
useDispatch()
return null
}
export default MyComp
Run Code Online (Sandbox Code Playgroud)
这是我在开发控制台中看到的错误:
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)
Run Code Online (Sandbox Code Playgroud)
我已经进一步削减了这个,所以反应树中没有父母。
const store = configureStore()
ReactDOM.render(
<Provider store={store}>
<MyComp />
</Provider>,
document.getElementById('root')
)
Run Code Online (Sandbox Code Playgroud)
模块版本
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^7.1.0",
Run Code Online (Sandbox Code Playgroud)
zgr*_*een 14
就我而言,我正在做:
import { useDispatch } from 'react'
Run Code Online (Sandbox Code Playgroud)
代替:
import { useDispatch } from 'react-redux'
Run Code Online (Sandbox Code Playgroud)
???
我让它工作了 - 我认为只需停止、构建、重新启动应用程序即可。我没想到useDispatch需要这个,所以我无法解释为什么这会有所帮助。
注意-我确实尝试过useSelector并且确实有效,从react-redux导入后我可以将useSelector变量输出到控制台(useDispatch的console.log未定义)。那时我就知道我使用的是正确的 React 版本,这可能是我的系统的问题。
所以,如果你也有类似的问题。尝试完全重启反应应用程序。确认您正在加载正确版本的反应。
| 归档时间: |
|
| 查看次数: |
4123 次 |
| 最近记录: |