我正在使用 Formik 在网站上创建一个表单。在这个表单中,我有一组标签,我想要用单独的复选框来选择它们,但是将它们保留在数组中 tags
。Formik声称可以通过在 Field 元素上使用相同的 name
属性来实现,但我无法让它工作。
我正在使用这个代码示例作为参考。
以下是我的代码:
import React from "react";
import ReactDOM from "react-dom";
import { Formik, Form, Field } from "formik";
import "./styles.css";
function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<ProjectsForm />
</div>
);
}
const ProjectsForm = props => (
<Formik
initialValues={{
search: "",
tags: []
}}
onSubmit={values => {
console.log(values);
}}
validate={values => {
console.log(values);
}}
validateOnChange={true}
>
{({ isSubmitting, getFieldProps, handleChange, handleBlur, values }) => (
<Form>
<Field type="text" name="search" />
<label>
<Field type="checkbox" name="tags" value="one" />
One
</label>
<label>
<Field type="checkbox" name="tags" value="two" />
Two
</label>
<label>
<Field type="checkbox" name="tags" value="three" />
Three
</label>
</Form>
)}
</Formik>
);
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
另外在CodeSandbox上也有相关内容。
我期待通过console.log(values)
显示类似以下的内容:
Object {search: "", tags: ['one', 'three']}
或者
Object {search: "", tags: ['one': true, 'two': false, 'three': true]}
希望我所遗漏的添加Formik复选框组功能的简单方法存在,因为它声称是可能的。