Redux Toolkit应用查询初始状态时出现Cannot read properties of undefined错误
Redux兄弟组件共享状态的"Cannot read properties of undefined"错误排查
错误根源
之前的代码直接调用selectFruit()而未通过useSelector钩子,导致选择器函数接收的state参数为undefined,访问state.fruit.fruitname时自然触发"Cannot read properties of undefined"错误。
更新后代码的正确性验证
你根据建议更新后的代码已经修复了核心问题,完全符合Redux Toolkit的规范:
- 组件中通过
useSelector(selectFruit)正确获取Redux store中的状态,useSelector会自动传入根state给选择器函数 - 使用
useDispatch获取dispatch实例,并在输入变化时通过回调分发setFruitaction,Redux Toolkit内部已通过immer处理状态更新的不可变性逻辑 - 初始状态配置正确,slice和store的结构映射无误
此时兄弟组件应该可以正常同步状态:在SimpleFruit的输入框修改内容,FruitLabel的标题会实时同步显示最新的水果名称,初始状态默认显示"pineapple"。
额外检查点
如果仍有问题,请确认项目入口文件(通常是index.js)是否用Provider包裹了App组件,这是Redux状态能被组件访问的必要条件:
import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import { store } from './app/store'; import { Provider } from 'react-redux'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <Provider store={store}> <App /> </Provider> </React.StrictMode> );
内容的提问来源于stack exchange,提问作者Sambuddha
相关产品推荐
相关产品推荐

