Javascript 在Formik中使用CheckboxTree

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"

我在内部使用react复选框树时遇到问题。在文本字段中输入值,然后单击其中一个复选框后,文本字段将重置为第一个状态

<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 })}
/>