javascript - 如何让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>
在我的另一个文件中,我像这样使用 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}
/>
)}
/>
我尝试使用该.toString()
方法将切换器的值设置为字符串,但它不起作用。
如何获得切换器值?我在这里有什么误解?
最好的,
解决方案
将初始值设置为false/true
,然后使用props.values.admin
Switch 组件内的 ,并使用setFieldValue Formik 函数更新值。
<Formik
initialValues={{ email: '', admin: false }}
...
/>
<Switch
...
checked={props.values.admin}
onChange={() => props.setFieldValue("admin", !props.values.admin)}
...
/>
推荐阅读
- python - 如何在每行Python上打印出不同的标题
- scala - Spark覆盖模式和并发执行
- arrays - 我可以将逗号分隔的字符串转换回 AD 值对象吗?
- teamcity - Teamcity 单独的测试结果查看器
- python - 当与非布尔值一起使用时,“或”在 Python 中如何工作?
- eclipse - 是否可以通过在 Eclipse 中将其命名为 .pdf 来创建 pdf 文件?
- python - 如何摆脱 Pandas 中的第二个索引列?(Python)
- node.js - 试图处理表单但返回一个对象?
- javascript - 你将如何重写这 3 个函数,以便它可以被一个函数调用?
- javascript - 数据映射错误:“未捕获的类型错误:无法读取未定义的属性 'equirectangular'”