如何从props(无状态组件)传递Redux形式的初始值?

时间:2018-06-29 08:01:17

标签: reactjs components redux-form

我的组件是这个.....我从对象中的道具获得了初始形式的价值,我需要将其设置为redux形式以进一步更新它。 这里要指出的是,我有一个具有一个表单名称的三步式redux表单。 Example is here

import React from 'react';
import { Field, reduxForm } from 'redux-form'
import validate from './validate'
import renderField from './renderField'

const WizardFormFirstPage = props => {
  const { handleSubmit } = props;

  return (
    <form onSubmit={handleSubmit}>

      <Field
        name="title"
        type="text"
        component={renderField}
        label="Title"
      />
      <Field
        name="subTitle"
        type="text"
        component={renderField}
        label="Sub-Title"
      />
      <Field
        name="price"
        type="number"
        component={renderField}
        label="Price"
      />
      <Field
        name="brandName"
        type="text"
        component={renderField}
        label="Brand Name"
      />

      <div>
        <button type="submit" className="btn btn-primary">Next</button>
      </div>
    </form>
  );
};

export default reduxForm({
  form: 'wizard',                
  destroyOnUnmount: false,   
  forceUnregisterOnUnmount: true,
  validate,
})(WizardFormFirstPage);

2 个答案:

答案 0 :(得分:0)

您可能走错了路。为商店增值需要连接到redux,但通常不建议将演示组件连接到商店。

结果,我想您可能希望将组件保持原样,并将所有事件处理程序从容器传递给它。

同时,为容器组件添加一个到商店的连接,然后在ajax的回调中将其推送到商店。

答案 1 :(得分:0)

如果您希望从不同组件的redux-form访问表单值,则可能应该使用 getFormValues 选择器,并将表单名称指定为params。通过props将表单名称从父容器传递到无状态组件。然后,您可以从props的“ formValues”字段下访问表单值。

const mapStateToProps = (state, props) => ({
  formValues: getFormValues(props.form)(state),
  initialValues: props.initialValues,
});