Javascript 编辑字段不工作&;使用redux存储管理表单值-redux表单
我使用的是Javascript 编辑字段不工作&;使用redux存储管理表单值-redux表单,javascript,reactjs,redux,react-redux,redux-form,Javascript,Reactjs,Redux,React Redux,Redux Form,我使用的是redux表单v6.7.0。我引用了这一点,并尝试在单击按钮时异步加载数据,但它没有按预期工作。我使用了component willreceiveprops中的change方法,但使用后我无法编辑该字段 我不知道使用change方法是使用redux表单进行管理的唯一合适的方法。PFB使用组件中的change方法加载personName的示例代码片段将接收props,之后我无法编辑该字段。对于人物,字段工作正常,因为我没有对其使用change方法 此外,我希望将所有更改的表单值与我的re
redux表单
v6.7.0。我引用了这一点,并尝试在单击按钮时异步加载数据,但它没有按预期工作。我使用了component willreceiveprops
中的change
方法,但使用后我无法编辑该字段
我不知道使用change
方法是使用redux表单进行管理的唯一合适的方法。PFB使用组件中的change
方法加载personName
的示例代码片段将接收props
,之后我无法编辑该字段。对于人物
,字段
工作正常,因为我没有对其使用change
方法
此外,我希望将所有更改的表单值与我的redux
存储同步(意味着用我的redux
存储更新每个更改)
任何帮助都将不胜感激。提前谢谢
/*还原程序应始终保持不变性*/
函数PersonInfoReducer(状态={personName:,人物:},操作){
开关(动作类型){
案例“保存人员数据”:
返回Object.assign({},state,action.payload);
违约:
返回状态;
}
}
/*保存个人数据操作*/
var savePersonData=(数据)=>{
返回{
键入:“保存个人数据”,
有效载荷:数据
};
};
/*表单示例组件*/
类FormSample扩展了React.Component{
componentDidMount(){
}
组件将接收道具(下一步){
//console.log(nextrops);
const{change}=this.props;
//调试器;
if(nextrops.initialValues){
更改(“personName”,nextrops.initialValues.personName);
//变更(“人物”,nextrops.initialValues.personAge);
}
}
loadPersonData(){
const{initialize,savePersonData}=this.props;
变量personInfo={
人名:“亚伯拉罕”,
人物:21
};
savePersonData(personInfo);
}
render(){
返回(
this.loadPersonData()}>Load
值:{JSON.stringify(this.props.formValues)}
);
}
}
FormSample=ReduxForm.ReduxForm({
表单:“FormSample”,//此表单的唯一标识符
})(样本);
常量选择器=ReduxForm.formValueSelector(“FormSample”);
函数MapStateTops(状态){
const{personInfo}=状态;
返回{
初始值:personInfo,
formValues:选择器(状态为“personName”、“personAge”)
};
}
功能图DispatchToprops(调度){
返回Redux.bindActionCreators({
储蓄者
},派遣);
}
FormSample=ReactRedux.connect(mapStateToProps,mapDispatchToProps)(FormSample);
const allReducers=Redux.combineReducers({
形式:ReduxForm.reducer,
personInfo:personInfo
});
const store=Redux.createStore(所有还原器);
render(,document.getElementById(“根”))代码>
我终于以这个解决方案结束了:)。PFB代码片段
/*表单示例组件*/
类FormSample扩展了React.Component{
组件将接收道具(下一步){
//const{change,initialize}=this.props;
}
loadPersonData(){
const{initialize,savePersonData}=this.props;
变量personInfo={
人名:“亚伯拉罕”,
人物:21
};
savePersonData(personInfo);
}
加载其他数据(){
const{savePersonData}=this.props;
变量personInfo={
人名:“Gnanasingh”,
人物:23
};
savePersonData(personInfo);
}
提交(){
const{formValues,savePersonData}=this.props;
savePersonData(formValues);
}
render(){
const{formValues,personInfo}=this.props;
返回(
this.loadPersonData()}>Load
this.loadAnotherData()}>加载另一个
this.submit()}>submit
表单值:{JSON.stringify(formValues,null,2)}
存储值:{JSON.stringify(personInfo,null,2)}
);
}
}
FormSample=ReduxForm.ReduxForm({
表单:“FormSample”,//此表单的唯一标识符
启用重新初始化:true
})(样本);
常量选择器=ReduxForm.formValueSelector(“FormSample”);
函数MapStateTops(状态){
const{personInfo}=状态;
返回{
初始值:personInfo,
formValues:选择器(状态为“personName”、“personAge”),
人形信息
};
}
功能图DispatchToprops(调度){
返回Redux.bindActionCreators({
储蓄者
},派遣);
}
FormSample=ReactRedux.connect(mapStateToProps,mapDispatchToProps)(FormSample);
/*还原剂应始终保持不变性*/
函数PersonInfoReducer(状态={personName:,人物:},操作){
开关(动作类型){
案例“保存\u PERSON\u数据”:
调试器;
返回Object.assign({},state,action.payload);
违约:
返回状态;
}
}
/*保存个人数据操作*/
var savePersonData=(数据)=>{
返回{
键入:“保存个人数据”,
有效载荷:数据
};
};
const allReducers=Redux.combineReducers({
形式:ReduxForm.reducer,
personInfo:personInfo
});
const store=Redux.createStore(所有还原器);
render(,document.getElementById(“根”))代码>
得到了编辑不起作用的答案。请参考这个。我仍然需要关于如何将所有表单更改与我的redux
存储同步的答案。