首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Formik错误响应表单:列表中的每个子表都应该有一个唯一的“键”支柱

使用Formik错误响应表单:列表中的每个子表都应该有一个唯一的“键”支柱
EN

Stack Overflow用户
提问于 2020-10-05 14:40:25
回答 1查看 1.4K关注 0票数 1

很简单的问题。我正在用Formik构建几个“相同”行的表单。每一行都由姓名和姓氏输入+一个按钮组成

键(来自地图索引)放置在最外层的元素上。

我去掉了一些从Formik (handleChange,handleBlur等)出来的样板代码:

代码语言:javascript
运行
复制
<Formik...>
            {({values}) => (
                <FieldArray name={"authors"}>{({push, remove}) => (
                    <Form onSubmit={handleSubmit}>
                        {values.authors.map((author, index) => (
                            <PropertySubmissionFields author={author} index={index}/>
                        ))}

                    </Form>
                )}
                </FieldArray>)}
        </Formik>

<PropertySubmissionFields>中,键(来自映射索引)放置在最外层的元素(每一行)上:

代码语言:javascript
运行
复制
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>形式显示的

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 14:44:37

通常,一旦使用.map(),您需要向每个呈现的元素添加key属性,以避免发出警告消息。因此,基于此,您需要执行以下操作--将key添加为:

代码语言:javascript
运行
复制
{
  values.authors.map((author, index) => (
     <PropertySubmissionFields key={index} author={author} index={index}/>
  ))
}

请参阅我建议的解决方案中添加的key={index}属性。

在文档中进一步了解列表和密钥,特别是部分

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64210834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档