Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 ReactJS-Formik SelectAll复选框_Javascript_Reactjs_Forms_Formik - Fatal编程技术网

Javascript ReactJS-Formik SelectAll复选框

Javascript ReactJS-Formik SelectAll复选框,javascript,reactjs,forms,formik,Javascript,Reactjs,Forms,Formik,我正在使用Formik,在我的表单中。我有一个对象数组,这些对象来自具有以下结构的服务器: { "name": "Screen1", "viewable": { "permission": "ViewScreen1", "checked": true }, "manageable": { "permission": "ViewScreen2",

我正在使用Formik,在我的表单中。我有一个对象数组,这些对象来自具有以下结构的服务器:

      {
        "name": "Screen1",
        "viewable": {
          "permission": "ViewScreen1",
          "checked": true
        },
        "manageable": {
          "permission": "ViewScreen2",
          "checked": false
        }
      },
      ...moreObjectsHere
我通过它们进行映射,以便为每个屏幕创建一个带有2个复选框的列表

  renderField(field, index) {
    const { keyField } = this.props;
    const { name, viewable, manageable } = field;

    return (
      <div className="row" key={hash({ ...field, index })}>
        <div className='col-4'>
          {name}
        </div>
        <div className="col-2 text-center">
          {viewable && (
            <Fragment>
              {
                <Field
                  component={PermissionsCheckbox}
                  name={`${keyField}.${index}.viewable.checked`}
                  disabled={!viewable}
                />
              }
            </Fragment>
          )}
        </div>
        <div className="col-2 text-center">
          {manageable && (
            <Fragment>
              {
                <Field
                  component={PermissionsCheckbox}
                  name={`${keyField}.${index}.manageable.checked`}
                  disabled={!manageable}
                />
              }
            </Fragment>
          )}
        </div>
      </div>
    );
  }

  render() {
    const { dto, keyField, mode } = this.props;
    return (
      <Fragment>
        <div className="row">
          <div className="col-2 offset-4 text-center">
            <h6 className="font-weight-bold">View</h6>
          </div>
          <div className="col-2 text-center">
            <h6 className="font-weight-bold">Manage</h6>
          </div>
        </div>
        <FieldArray
          render={() => dto[keyField].map((field, index) => this.renderField(field, index))}
        />
      </Fragment>
    );
  }
我在这里有点不知所措。我想用Formik本身的` setFieldValuez'强制设置值,但我将如何以及在何处实现这一点

在网上查过了,但实际上没有找到任何能帮助我快速完成任务的东西关于此功能,您对Formik有任何经验吗?谢谢

  renderSelectAll = () => (
    <div className="row">
      <div className="col-4 my-2 font-weight-medium">Select All</div>
      <div className="col-2 text-center">
        <Field
          component={PermissionsCheckbox}
          name="permission-set-1"
        />
      </div>
      <div className="col-2 text-center">
        <Field component={PermissionsCheckbox} name="permission-set-2" />
      </div>
    </div>
  );
          <Fragment>
            <div className="border-top my-2 w-75" />
            {this.renderSelectAll()}
          </Fragment>