Merge 如何使用从服务器获取的值填写或填充react redux表单?

Merge 如何使用从服务器获取的值填写或填充react redux表单?,merge,action,populate,react-redux-form,Merge,Action,Populate,React Redux Form,我使用redux表单来编辑有关任务的信息,因此我从服务器获取数据并希望在表单中使用它。如何正确填写或填充此表单,然后对其进行编辑。我试图填写表单的字段,例如value={task.text}。但是在那之后,表单不允许我修改表单元素 this.handleSubmit(值)}> 完成了吗{'} 旧值:{task.status==0?'Pending…':'task Was Done'} 你的任务 旧值:{task.text} {task.username==''编辑': 编辑} 您需要在组件中创

我使用redux表单来编辑有关任务的信息,因此我从服务器获取数据并希望在表单中使用它。如何正确填写或填充此表单,然后对其进行编辑。我试图填写表单的字段,例如
value={task.text}
。但是在那之后,表单不允许我修改表单元素

this.handleSubmit(值)}>
完成了吗{'}
旧值:{task.status==0?'Pending…':'task Was Done'}
你的任务
旧值:{task.text}
{task.username==''编辑':
编辑}

您需要在组件中创建handleChange方法

handleChange(evt) {
   this.setState({
      [evt.target.name]: [evt.target.value]
   });
}
确保您的state属性等于evt.target.name!然后,您将希望在构造函数中绑定它

this.onChange = this.onChange.bind(this);
最后,以关注点的形式,您需要创建一个onChange属性并传入handleChange方法

<YourInputField onChange={this.handleChange} (and whatever other properties you have) />

这将允许您修改表单。目前,您的值是静态的,因为它依赖于状态,而状态目前没有改变


因此,您可以使用从服务器拉入的数据更新状态,然后可以将表单的值设置为等于该状态属性,此时,处理程序将更改您的状态,从而更改您的输入

至于我,我解决了这个问题。我使用了一个名为actions.merge的Redux操作生成器。起初,它不起作用,因为我试图从子组件调用它。但是我应该在componentDidUpdate钩子中的MainComponent.js文件中完成

在ActionCreators.js中,我声明:

从'react redux form'导入操作;
...
导出常量setDefaultFormValues=(值)=>(分派)=>{
分派(setDefaultUser:(值)=>actions.merge('editTask',值));

}
请格式化代码使其可读,好吗?没问题,谢谢!嗨,亚伦!谢谢你的回答!我已经照你说的做了,但这对我不起作用。您想告诉我如何使用从服务器获取的数据更新状态吗?我获取数组«任务»:{status:task.status,text:task.text}我应该在哪里将表单的值设置为等于该状态属性?一种方法是使用componentDidMount
async componentDidMount(){try{const{data}=await axios.get('此处的api路由');//数据等于该请求的响应等待this.setState(data);//如果发送的数据与您的状态(或状态的一部分)的结构匹配,则以这种方式执行)}catch(err){//handle your error here}
让我知道这对您有何影响。请确保npm安装axios并向您导入(或仅使用fetch)!如果这不起作用,如果您可以共享您的组件,我将更容易帮助您。