Redux-Form的初始值仅在经过硬编码后才呈现,而并非来自props / state

时间:2019-03-07 06:19:52

标签: reactjs react-redux redux-form

在我的redux表单中,我试图使用从API接收并通过prop传递到组件中的数据初始化表单。现在,我的initialize函数可以接受并显示字符串(即,如果我传入"questionText: "some text",则会填充问题文本<Field>)。但是,当我传入我正在接受的道具状态时,什么也没有填充。

当我执行"questionText: this.state.offerContent.name"时,<Field>中什么也没有显示。

我试图弄清楚为什么会这样。这是一些相关的代码。

   constructor(props) {
      super(props)
      this.state = {
        offerContent: ''
      }

  componentDidMount(){
      this.props.offerCallBack()
        .then(c => {
             this.setState({
               offerContent: c,
             });
        })
        .catch(error => {
          console.log(error);
         });
         this.handleInitialize();

        }

        handleInitialize() {
          const initData = {
            "questionText": this.props.offerContent.name,
          };

          this.props.initialize(initData);
        }

              <Field
                  name="questionText"
                  type="text"
                  id="questionText"
                  component={renderField}
                  label="Question Text"
              />

const form = reduxForm({
  form: 'offerquestion',
  enableReinitialize: true

});

function mapStateToProps(state) {
  return {
    offerContent: state.offerContent
}
}

export default connect(mapStateToProps)(form(OfferExample));

**这是当我在OfferExample组件中console.log(this.props)时发生的情况: enter image description here

0 个答案:

没有答案