Javascript Redux Form won';不允许编辑初始化表单状态值
我有一个Javascript Redux Form won';不允许编辑初始化表单状态值,javascript,html,reactjs,redux,redux-form,Javascript,Html,Reactjs,Redux,Redux Form,我有一个redux表单组件,我正确地传递了初始表单状态值,但是当我在表单内部单击时,我无法编辑这些值。我相信我已经阅读了所有文档,如以下链接: 我还按照文档实现了一个定制的输入: 所以我想知道我错过了什么?这是我的表单组件: EditJournalForm.jsx 导入“/styles/list item.scss”; 从“react bootstrap”导入{Button,ButtonToolbar}; 从“react redux”导入{connect}; 从“redux表单”导入{Fi
redux表单
组件,我正确地传递了初始表单状态值
,但是当我在表单内部单击时,我无法编辑这些值。我相信我已经阅读了所有文档,如以下链接:
我还按照文档实现了一个定制的输入
:
所以我想知道我错过了什么?这是我的表单组件:
EditJournalForm.jsx
导入“/styles/list item.scss”;
从“react bootstrap”导入{Button,ButtonToolbar};
从“react redux”导入{connect};
从“redux表单”导入{Field,reduxForm};
从“./表单字段/InputField”导入InputField;
从“道具类型”导入道具类型;
从“React”导入React;
类EditJournalForm扩展了React.Component{
render(){
//log('editJournalFormthis.props',this.props);
const{closeOverlay,handleSubmit,initialValues,pristine,submiting,}=this.props;
返回(
props.onChange(param.val)}
{…道具}
/>
}
label=“期刊标题”
name=“title”
type=“text”
/>
props.onChange(param.val)}
{…道具}
/>
}
componentClass=“textarea”
label=“Description”
name=“description”
rows=“5”
type=“text”
/>
{
如果(关闭覆盖){
closeOverlay();
}
}}
>
取消
添加
);
}
}
EditJournalForm.propTypes={
“closeOverlay”:PropTypes.func,
“handleSubmit”:需要PropTypes.func,
“原始”:PropTypes.bool.isRequired,
“提交”:PropTypes.bool.isRequired,
“initialValues”:PropTypes.object
};
EditJournalForm.defaultProps={
“closeOverlay”:未定义
};
导出默认reduxForm({
表格:“编辑期刊”,
启用重新初始化:true
})(连接((状态,ownProps)=>{
返回{
初始值:{
“标题”:state.bees.entities.journals[ownProps.journal.id].attributes.title,
“描述”:state.bees.entities.journals[ownProps.journal.id].attributes.description,
}
};
},未定义)(编辑日志格式)
我发现至少有一个问题-您正在将内容
属性指定为具有val
属性的对象,但在自定义输入字段
中,您正在设置值={content}
,因此实际上是具有{val:'value'}
属性的对象,而不是实际值(“值”在本例中)
使用redux表单,无需从
初始值
手动分配。通过在字段
上具有名称
属性,将为您正确分配该属性。尝试调用输入字段的onChange
函数:
const InputField = ({input, label, content, updateFn, type, ...props}) => (
<FormGroup>
<ControlLabel>
{label}
</ControlLabel>
<FormControl
{...props}
{...input}
value={content}
onChange={(e) => {
input.onChange(e);
updateFn(e);
}}
type={type}
/>
</FormGroup>
);
constinputfield=({input,label,content,updateFn,type,…props})=>(
{label}
{
输入。onChange(e);
更新fn(e);
}}
类型={type}
/>
);