我使用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,如何继续这个?谁能帮我解决一下?提前谢谢。