You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Redux问题:组件无法从Reducer获取formId的排查求助

排查Component2无法读取Redux中formId的问题

以下是核心问题点及修复方案:

1. Redux Store结构不匹配

你在组件中通过state.app.eFormReducer获取状态,但实际store的结构并非如此:

  • 在store.js中,你直接使用createStore(reducer)创建store,此时根state就是eFormReducer的状态对象,而非嵌套在app.eFormReducer下。
  • 修复方式:
    • Customer1组件中,将useSelector((state) => state.app.eFormReducer)改为useSelector((state) => state)
    • Component2组件中,将useSelector(state => state.app.eFormReducer.formId)改为useSelector(state => state.formId)

2. Customer1组件中的拼写错误

在错误处理分支中,你调用了小写的udispatch,但定义的dispatch变量是大写的uDispatch:

// 错误写法
udispatch(eFormActions.setSignFormResponsePdfError());
// 正确写法
uDispatch(eFormActions.setSignFormResponsePdfError());

这个拼写错误会导致该错误action无法触发,若API返回的data存在异常,会影响状态更新逻辑。

3. Component2中的语法错误

console.log里使用了中文引号,这会触发JavaScript语法错误:

// 错误写法
console.log(‘formId’, formId1)
// 正确写法
console.log('formId', formId1)

额外验证步骤

  • 打开Redux DevTools,确认调用setFormData后,根state中的formId是否被正确更新
  • 确认你的应用根组件已被react-redux的Provider包裹,并传入了正确的store:
import { Provider } from 'react-redux';
import store from './store';

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

内容的提问来源于stack exchange,提问作者sarad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:35:40