如何使用函数

时间:2018-01-12 10:32:45

标签: reactjs redux redux-form

我使用redux-form将用户输入的数据提交到api的表单输入。 redux-form的输入用于编辑表单中现有数据的值。所以,我想要的是使用来自api.So的先前(现有)值填充表单的输入值。我使用过使用props获取现有值并将这些值分配给组件状态。当输入发生更改时,我将使用 setState 更改该输入的状态。现在,我面临的问题是,因为我使用的是redux-form,我使用来自redux-form.So的 Field 组件,这就是我的 render()< / strong>方法看起来像:

render() {
    const { handleSubmit } = this.props;

    return (
      <form onSubmit={handleSubmit(this.onSubmit.bind(this))}>
        <Field
          label="Title for Post"
          name="title"
          component={this.renderField}
        />

        <Field
          label="Post Content"
          name="body"
          component={this.renderField}
        />
  );
}

上面使用的 renderField()方法如下所示:

renderField(field) {
    return(
      <div className="title-design">
          <label className="label-design"> {field.label} </label>
          <input
            type="text"
            className="title-input"
            {...field.input}
            value={this.state.title}
            onChange={this.onInputChange}
          />
          <div className="text-help  has-danger">
            {field.meta.touched ? field.meta.error : ''}
          </div>
      </div>
    )
  }

onInputChange()方法如下:

onInputChange(event) {
  this.setState({title: event.target.value})
 }

因此,由于我的输入是在renderField()方法中,所以当我尝试在输入中输入内容时,我看不到状态更新(因为我的renderField()方法被用作道具并且它不在render方法中,因此状态没有被更新),这就是我的输入无法正常工作的原因。我的意思是我无法在输入中插入或删除值。

但是,如果我在render方法中使用如下所示的输入,它将按预期正常工作。

        <input
            type="text"
            className="title-input"
            value={this.state.title}
            onChange={this.onInputChange}
          />

但是,我不知道如何仅使用如上所示的输入将值传递给redux-form.So,如何继续这个?谁能帮我解决一下?提前谢谢。

0 个答案:

没有答案