为什么我不能选中 Formik 复选框?
Why can't i check Formik checkboxes?
我正在尝试创建一个简单的 Formik 表单。第一次使用复选框。我可以呈现复选框,但无法选中其中任何一个。有什么问题?
export default function App() {
var lights = [{id:1, name:"a"}, {id:2, name:"a"}]
return (<div>
<h1>Select Lights</h1>
<Formik
initialValues={{
checked: [],
}}
onSubmit={(eve) => this.submit(eve)}
>
{({values}) => (
<form>
<div id="checkbox-group">Checked</div>
<div role="group" aria-labelledby="checkbox-group">
{lights.map((light) =>
<div>
<label>
<Field type="checkbox" key={light.id} name="checked" value={light.id}/>
{light.name}
</label>
</div>
)}
</div>
<button type="submit" onClick={(event => this.submit(event))}>Submit</button>
</form>
)}
</Formik>
</div>)
}
复选框值是一个数字似乎是问题所在。因为您将其初始化为数字,但在 formik 跟踪复选框值时,它在内部被转换为字符串。变化
<Field type="checkbox" key={light.id} name="checked" value={light.id}/>
至:
<Field type="checkbox" key={light.id} name="checked" value={light.id.toString()}/>
我正在尝试创建一个简单的 Formik 表单。第一次使用复选框。我可以呈现复选框,但无法选中其中任何一个。有什么问题?
export default function App() {
var lights = [{id:1, name:"a"}, {id:2, name:"a"}]
return (<div>
<h1>Select Lights</h1>
<Formik
initialValues={{
checked: [],
}}
onSubmit={(eve) => this.submit(eve)}
>
{({values}) => (
<form>
<div id="checkbox-group">Checked</div>
<div role="group" aria-labelledby="checkbox-group">
{lights.map((light) =>
<div>
<label>
<Field type="checkbox" key={light.id} name="checked" value={light.id}/>
{light.name}
</label>
</div>
)}
</div>
<button type="submit" onClick={(event => this.submit(event))}>Submit</button>
</form>
)}
</Formik>
</div>)
}
复选框值是一个数字似乎是问题所在。因为您将其初始化为数字,但在 formik 跟踪复选框值时,它在内部被转换为字符串。变化
<Field type="checkbox" key={light.id} name="checked" value={light.id}/>
至:
<Field type="checkbox" key={light.id} name="checked" value={light.id.toString()}/>