如何让 Formik 返回一个布尔值?

Kan*_*Kan 1 javascript reactjs formik

我正在尝试从 Formik 获得价值。它适用于文本字段,但我没有取回切换器的值(这是一个布尔值)。

我的文件和切换器设置如下:

 <div className="side2">
          <Field
            type="email"
            label={currentEmail}
            name="email"
            placeholder={t('register.email')}
            style={{ width: '55%' }}
            className="fontLogin"
            component={FormikInput}
          />
        </div>
      </div>
      <div className="main">
        <div className="side">
          <p>Is admin ?</p>
        </div>
        <div className="side2">
          <Switch
            name="admin"
            id="admin"
            checked={(open === 'true')}
            onChange={() => handleChange(!(open)}
            color="primary"
            inputProps={{ 'aria-label': 'primary checkbox' }}
          />
        </div>
      </div>
Run Code Online (Sandbox Code Playgroud)

在我的另一个文件中,我像这样使用 formik:

<Formik
              ref={form}
              initialValues={{ email: '', admin: '' }}
              onSubmit={(values) => {
                handleSubmit(values);
                handleClose();
              }}
              render={(props) => (
                <FormRender
                  t={t}
                  currentEmail={currentEmail}
                  currentAdmin={currentAdmin}
                  currentVerified={currentVerified}
                  activeButton
                  {...props}
                />
              )}
            />
Run Code Online (Sandbox Code Playgroud)

我尝试使用该.toString()方法将切换器的值设置为字符串,但不起作用。

怎么可能找回切换器的价值?我在这里误解了什么?

最好的事物,

dw_*_*dw_ 5

将初始值设置为false/true,然后props.values.admin在 Switch 组件中使用 ,并使用setFieldValue Formik 函数更新该值。

<Formik
  initialValues={{ email: '', admin: false }}
  ...
/>
Run Code Online (Sandbox Code Playgroud)
<Switch
  ...
  checked={props.values.admin}
  onChange={() => props.setFieldValue("admin", !props.values.admin)}
  ...
/>
Run Code Online (Sandbox Code Playgroud)