Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React Redux表单上设置初始值字段_Javascript_Redux_React Redux Form - Fatal编程技术网

Javascript 在React Redux表单上设置初始值字段

Javascript 在React Redux表单上设置初始值字段,javascript,redux,react-redux-form,Javascript,Redux,React Redux Form,我已经呈现了一个redux形式的动态字段,它接受用户的字符串输入,或者是一个布尔值,它是一个选择字段,用户可以在下拉菜单中选择是或否。redux形式值将布尔值字段初始化为false。以下代码通过传递这些对象的数组,动态地呈现对象的redux字段: 字符串输入字段:{name:“stateCode”,长度:100,标题:“State”,类型:“String”,必需:true} 布尔输入字段:{name:“修订”,长度:5,标题:“修订”,类型:“Boolean”,必需:true} 后端代码从数据库

我已经呈现了一个redux形式的动态字段,它接受用户的字符串输入,或者是一个布尔值,它是一个选择字段,用户可以在下拉菜单中选择是或否。redux形式值将布尔值字段初始化为false。以下代码通过传递这些对象的数组,动态地呈现对象的redux字段:

字符串输入字段:{name:“stateCode”,长度:100,标题:“State”,类型:“String”,必需:true}

布尔输入字段:{name:“修订”,长度:5,标题:“修订”,类型:“Boolean”,必需:true}

后端代码从数据库获取这些对象的数组,并将其发送到前端。根据用户填写的250个不同表单中的哪一个,对象数组是不同的,每个表单都有80个可能字段的子集,这些字段是该表单的要求。以下代码是如何创建表单字段和验证用户输入的:

const booleanMenuItems=[
,
];
const additionalEdiFields=this.props.ediAdditionalFields==null?null:this.props.ediAdditionalFields.map(字段=>
{
如果(field.type==“string”){
返回
}
如果(field.type==“boolean”){
返回
{booleanMenuItems}
}
}
);
常量验证=(值、状态)=>{
常量错误={};
让additionalEdiFields=state.ediAdditionalFields==null?[]:state.ediAdditionalFields.map((extraField)=>{
返回外场;
});
常量必填字段=[
{name:“legalEntityId”,长度:32,标题:“法人实体Id”,类型:“string”,必填项:true},
{name:“stateCode”,长度:100,标题:“State”,类型:“string”,必填项:true},
{name:“filingFormName”,长度:100,标题:“Return”,类型:“string”,必填项:true},
{名称:“归档频率ID”,长度:100,标题:“归档频率”,类型:“字符串”,必填项:true},
{name:“DuedayOfflingPeriod”,长度:100,标题:“到期日”,类型:“string”,必填项:true},
{名称:“defaultAssignedTo”,长度:100,标题:“AssignedTo”,类型:“string”,必填项:true},
{名称:“文件类型”,长度:100,标题:“文件类型”,类型:“字符串”,必填项:true},
{名称:“paymentType”,长度:100,标题:“预付款”,类型:“字符串”,必填项:true},
{name:“effectiveDateMonth”,长度:2,标题:“effectiveMonth”,类型:“string”,必填项:true},
{name:“effectiveDateYear”,长度:4,标题:“effectiveYear”,类型:“string”,必填项:true},
{name:“hasNoExpirationDate”,长度:20,标题:“没有过期日期”,类型:“string”,必需:true}
];
让allFields=AdditionalEdifiels.concat(requiredFields);
所有字段。forEach((字段)=>{
如果(字段!=未定义){
如果(!values[field.name]){
如果(field.required==true){
if(field.name=='hasNoExpirationDate'&&!values.expirationDateMonth){
errors.expirationDateMonth='Required';
}
if(field.name=='hasNoExpirationDate'&&!values.expirationDateYear){
errors.expirationDateYear='Required';
}
if(field.name!=“hasNoExpirationDate”&&field.type!=“boolean”){
错误[field.name]=“必需”;
}
}
}
if(值[field.name]){
if(值[field.name].length>field.length){
错误[field.name]=“太长”;
}
}
}
});
返回错误

};是否可以向状态添加一个值为false的变量,并在呈现时将其传递给字段,然后在字段中添加组件值={this.state.chosenvarname}onChange(e)=>{setstate({chosenvarname=e.value)}
类似这样的内容

为了做到这一点,我需要知道字段名,它是动态的,并且每个表单都不同。例如,“修订”字段可能不在其他249个表单上。我可以为所有可能的布尔字段添加验证,但我正试图避免这种情况。不过,我非常感谢您的帮助!如何向数组中添加新建index field.initialValue,并将其设置为false,以确定您希望其字段最初是否为false?