ReduxForm:从 mapStatetoProps 传递初始值

ReduxForm: passing initialValues from mapStatetoProps

我正在尝试按如下方式获取表单设置的初始值,但它不起作用:

const mapStateToProps = (state, props) => ({
  initialValues: state.charts[props.resourceId],
});

const mapDispatchToProps = ...

export default reduxForm({ 
  form: 'ChartForm',
})(connect(mapStateToProps, mapDispatchToProps)(ChartForm));

当然,如果我这样做的话就可以了:

export default reduxForm({ 
      form: 'ChartForm',
      initialValues: {
          title: "Some Title",
          ...
      }
})(connect(mapStateToProps, mapDispatchToProps)(ChartForm));

但这不是我需要的。我需要从我商店中具有 id == this.props.resourceId

的资源中获取初始值

有人能指出第一个解决方案有什么问题吗?

您需要将 initialValues 道具传递到表单中。为此,请使用 connect 函数包装表单。请参阅文档中的 Initialize From State

export default connect(mapStateToProps, mapDispatchToProps)(reduxForm({ 
  form: 'ChartForm',
})(ChartForm));