Javascript 在Formik中使用CheckboxTree
我在内部使用react复选框树时遇到问题。在文本字段中输入值,然后单击其中一个复选框后,文本字段将重置为第一个状态Javascript 在Formik中使用CheckboxTree,javascript,reactjs,formik,Javascript,Reactjs,Formik,我在内部使用react复选框树时遇到问题。在文本字段中输入值,然后单击其中一个复选框后,文本字段将重置为第一个状态 <Formik initialValues={this.state} enableReinitialize {props=> ( <Form onSubmit={props.handleSubmit}> <Input className="form-control-sm" type="text"
<Formik
initialValues={this.state}
enableReinitialize
{props=> (
<Form onSubmit={props.handleSubmit}>
<Input
className="form-control-sm"
type="text"
name="groupName"
id="groupName"
placeholder=""
onChange={props.handleChange}
onBlur={props.handleBlur}
value={props.values.groupName}
invalid={
props.errors.groupName != "" &&
props.errors.groupName != null
}
valid={
props.values.groupName != "" &&
props.errors.groupName == null
}
/>
<CheckboxTree
nodes={this.state.nodes}
checked={this.state.checked}
expanded={this.state.expanded}
onCheck={checked => this.onChecked(checked)}
onExpand={expanded => this.setState({ expanded })}
/>
/>
我必须更改这个onCheck函数调用吗?如果是,如何将其与Formik功能链接
onCheck={checked=>this.onChecked(checked)}
props.setFieldValue('checked',checked)}
onExpand={expanded=>this.setState({expanded})}
/>
现在,复选框可以按预期工作。。当onCheck事件调用时,我更改了代码。props.setFieldValue('checked',checked)}
onExpand={expanded=>this.setState({expanded})}
/>
现在,复选框可以按预期工作。。调用onCheck事件时,我更改了代码。您正在使用enableReinitialize属性。如果初始值发生更改,则应重置表单(使用深度相等)。hi@fetchenko是的,我使用enableReinitialize,因为我也使用该表单作为编辑模式(除了添加新记录)。如果不使用enableReinitialize,则无法加载数据进行编辑。。请分享一个与我的案例类似的教程/示例。。感谢您正在使用enableReinitialize属性。如果初始值发生更改,则应重置表单(使用深度相等)。hi@fetchenko是的,我使用enableReinitialize,因为我也使用该表单作为编辑模式(除了添加新记录)。如果不使用enableReinitialize,则无法加载数据进行编辑。。请分享一个与我的案例类似的教程/示例。。谢谢
onChecked = checked => {
this.setState({
checked
});
}
<CheckboxTree
nodes={props.values.nodes}
checked={props.values.checked}
expanded={props.values.expanded}
onCheck={checked => props.setFieldValue('checked', checked) }
onExpand={expanded => this.setState({ expanded })}
/>