我用React Formik库开发了一个复选框组件。下面是我的代码
const CheckBoxGroup = (props) => {
const { label,name,options,...rest } = props
return (
<React.Fragment>
<label htmlFor={name}> {label} </label>
<div className='form-check form-check-inline'>
<Field name={name} id={name} {...rest} >
{
({field}) => {
return options.map( (option) => {
return ( <React.Fragment key={option.key}>
<input type="checkbox"
id={option.value} {...field} value={option.value}
checked={field.value.includes(option.value)}
/>
<label class="form-check-label" htmlFor={option.value}>{option.key}</label>
</React.Fragment>)
})
}
}
</Field>
<ErrorMessage name={name} component={TextError} />
</div>
</React.Fragment>
);
}
有趣的是,当checked属性存在时,复选框不会被选中,但如果我删除checked属性,它会被选中。原因是什么?
2条答案
按热度按时间anauzrmj1#
你可以在formik网页上查看文档,这里有一个本地实现来尝试demo复选框,它运行正常,我使用的是最新的formik lib版本。
以下是来自formik站点的示例:formik checkboxex codesandbox demo
***我无法复制您的代码,因为您缺少 prop 上的输入
下面是我在本地运行内容:
v1uwarro2#
在我的例子中,使用value attribute作为数字,但只适用于字符串