我在使用react-checkbox-tree时遇到问题。在我的文本字段中输入值之后,然后单击一个复选框,我的文本字段将被重置为第一个状态。

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


onChecked功能代码:

onChecked = checked => {
  this.setState({
    checked
 });
}


我必须更改此onCheck函数调用吗?如果是,我该如何用Formik函数将其链接?

onCheck={checked => this.onChecked(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 })}
/>


现在,该复选框可以按预期的方式工作。当onCheck事件调用时,我更改了代码。

关于javascript - 在Formik中使用CheckboxTree,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59342492/

10-11 11:08