很简单的问题。我正在用Formik构建几个“相同”行的表单。每一行都由姓名和姓氏输入+一个按钮组成
键(来自地图索引)放置在最外层的元素上。
我去掉了一些从Formik (handleChange,handleBlur等)出来的样板代码:
<Formik...>
{({values}) => (
<FieldArray name={"authors"}>{({push, remove}) => (
<Form onSubmit={handleSubmit}>
{values.authors.map((author, index) => (
<PropertySubmissionFields author={author} index={index}/>
))}
</Form>
)}
</FieldArray>)}
</Formik>在<PropertySubmissionFields>中,键(来自映射索引)放置在最外层的元素(每一行)上:
return <Form.Row key={index}>
<Form.Group as={Col} controlId="formGridName">
<Form.Label>Prénom</Form.Label>
<Form.Control
name={`authors[${index}].name`}
/>
<ErrorMessage name={`authors[${index}].name`}>
{msg => <div className="error-message">{msg}</div>}
</ErrorMessage>
</Form.Group>
<Form.Group as={Col} controlId="formGridSurname">
<Form.Label>Nom</Form.Label>
<Form.Control
name={`authors[${index}].surname`}
value={author.surname}
/>
{author.surname !== 'null' && <ErrorMessage name={`authors[${index}].surname`}>
{msg => <div className="error-message">{msg}</div>}
</ErrorMessage>}
</Form.Group>
<Form.Group>
<br/>
<Button as={Col} className="mt-2 ml-1" type="button"
onClick={() => {
alert("remove");
}}>
X
</Button>
</Form.Group>
</Form.Row>我可以使用控制台显示索引(数字0、1等)。但是,我看不到DOM元素中的键(Form.Row是一个以<div>形式显示的
有什么想法吗?
https://stackoverflow.com/questions/64210834
复制相似问题