Reactjs Redux表单,从状态初始化表单
我正在尝试将此示例集成到我的应用程序中: 不幸的是,我似乎无法让它发挥作用。为了使它适合我的应用程序需要,我不得不做了一些更改,因此最值得注意的更改是,我传递的不是一个action对象到Reactjs Redux表单,从状态初始化表单,reactjs,redux,redux-form,Reactjs,Redux,Redux Form,我正在尝试将此示例集成到我的应用程序中: 不幸的是,我似乎无法让它发挥作用。为了使它适合我的应用程序需要,我不得不做了一些更改,因此最值得注意的更改是,我传递的不是一个action对象到connect()中,而是一个返回action的函数。此外,我将状态映射到属性的语法略有不同,但应该会产生相同的结果 但最让我困惑的是,它如何知道标签(从redux检索)的哪些属性映射到哪些表单字段 我真的不知道“什么”会触发正在初始化的表单。这是连接方法吗 有什么建议我可以尝试让这个工作 // edit.js
connect()
中,而是一个返回action的函数。此外,我将状态映射到属性的语法略有不同,但应该会产生相同的结果
但最让我困惑的是,它如何知道标签(从redux检索)的哪些属性映射到哪些表单字段
我真的不知道“什么”会触发正在初始化的表单。这是连接方法吗
有什么建议我可以尝试让这个工作
// edit.js
import React from 'react';
import { Field, reduxForm, initialize } from 'redux-form'
import { connect } from 'react-redux';
import { fetchTag } from '../../actions/tags-actions';
import { updateTag } from '../../actions/tags-actions';
import EditTagForm from '../../components/edit-tag-form';
class EditTag extends React.Component {
EditTagForm = reduxForm({
form: 'editTagForm'
})(EditTagForm);
handleSubmit(values) {
const tag = {
"name": values.tagName,
"disambiguation": values.tagDisambiguation,
"status": values.status || "published",
"domain": "some_domain", // @todo hardcoded
"type": values.tagType || "Person"
};
this.props.dispatch(updateTag(tag));
}
render() {
return (
<div>
<p>{this.props.tag.name}</p>
<EditTagForm onSubmit={this.handleSubmit.bind(this)}/>
</div>
);
};
}
const mapStateToProps = state => ({
tag: { ...state.tags.tags[0] },
fetching: state.tags.fetching,
fetched: state.tags.fetched,
error: state.tags.error,
initialValues: { ...state.tags.tags[0] }
});
// @todo fetching a hardcoded tag
export default connect(mapStateToProps, fetchTag("237171c8-bc6b-498b-abbf-99a595d6442d"))(EditTag);
// tags-actions.js
...
export function fetchTag(uuid) {
return function(dispatch) {
api.getTagFromUuid([uuid], {})
.then((response) => {
dispatch({type: "FETCH_TAGS_FULFILLED", payload: {
tags: [response.body]
}});
})
.catch((req) => {
dispatch({type: "FETCH_TAGS_REJECTED", payload: { response: req.response }});
});
};
}
...
//edit.js
从“React”导入React;
从“redux form”导入{Field,reduxForm,initialize}
从'react redux'导入{connect};
从“../../actions/tags actions”导入{fetchTag};
从“../../actions/tags actions”导入{updateTag};
从“../../components/edit tag form”导入EditTagForm;
类EditTag扩展了React.Component{
EditTagForm=reduxForm({
表单:“editTagForm”
})(编辑格式);
handleSubmit(值){
常量标记={
“名称”:values.tagName,
“消歧”:values.tag消歧,
“状态”:values.status | |“已发布”,
“域”:“某个域”,//@todo硬编码
“类型”:values.tagType | |“Person”
};
this.props.dispatch(updateTag(tag));
}
render(){
返回(
{this.props.tag.name}
);
};
}
常量mapStateToProps=状态=>({
标记:{…state.tags.tags[0]},
获取:state.tags.fetching,
已获取:state.tags.fetched,
错误:state.tags.error,
初始值:{…state.tags.tags[0]}
});
//@todo正在获取硬编码标记
导出默认连接(MapStateTrops,fetchTag(“237171c8-bc6b-498b-abbf-99a595d6442d”)(EditTag);
//tags-actions.js
...
导出函数fetchTag(uuid){
返回功能(调度){
api.getTagFromUuid([uuid],{})
。然后((响应)=>{
分派({type:“FETCH_TAGS_completed”),有效负载:{
标签:[响应.正文]
}});
})
.catch((请求)=>{
分派({type:“FETCH_TAGS_REJECTED”,有效负载:{response:req.response}});
});
};
}
...
组件的初始值的属性
=名称
属性您是否找到了这个@funkyLoody的答案?我有一个类似的问题。initialValues
=name
属性的属性Field
组件你找到这个@funkyDroyment的答案了吗?我也有类似的问题。