javascript - 警告 : validateDOMNesting(…): <form> cannot appear as a descendant of <form> by using semantic-ui-react modal

标签 javascript reactjs semantic-ui

当我在 semantic-ui-react 模式中使用 Form 时,它会显示该错误。

Warning: validateDOMNesting(…): cannot appear as a descendant of

我知道形式中有形式就是表现。

下面是我的代码,没有人。如果我不使用模态,则不会出现错误。

import { useState } from "react";
import { Helmet } from "react-helmet";
import { Button, Modal, Form } from "semantic-ui-react";
import { Body, Wrapper, Content, Article } from "../../Styles/Wrapper";

// eslint-disable-next-line import/no-anonymous-default-export
export default (company_id, company_secret, onSubmit) => {
  const [open, setOpen] = useState(false);

  return (
    <Body>
      <Wrapper>
        <Helmet>
          <title>juju</title>
        </Helmet>
        <Content>
          <Article>
            <Modal as={Form}
              onClose={() => setOpen(false)}
              onOpen={() => setOpen(true)}
              open={open}
              trigger={
                <Button
                  style={{ marginBottom: 10, backgroundColor: "#FEE500" }}
                  size="large"
                  fluid
                >
                  <span style={{ fontSize: 15 }}>begin</span>
                </Button>
              }
            >
              <Modal.Header>add</Modal.Header>
              <Modal.Content>
                <Form onSubmit={onSubmit}>
                  <Form.Group>
                    <Form.Input
                      placeholder="put id"
                      name="id"
                      {...company_id}
                    />
                    <Form.Input
                      placeholder="put secret"
                      name="secret"
                      {...company_secret}
                    />
                    <Form.Button content="Submit" />
                  </Form.Group>
                </Form>
              </Modal.Content>
            </Modal>
          </Article>
        </Content>
      </Wrapper>
    </Body>
  );
};

最佳答案

您不能拥有 form里面 form 。删除as={Form}渲染 Modal 时成分。您还应该修复函数参数,因为组件收到 props目的。你应该解构company_id , company_secret ,和onSubmit .

export default ({ company_id, company_secret, onSubmit }) => {
  // ...
}

<Form.Input> 有一些问题成分。您应该将 value 传递给他们和onChange Prop 。您可以创建几个状态变量 companyIdcompanySecret管理输入状态。

const [companyId, setCompanyId] = useState(company_id)
const [companySecret, setCompanySecret] = useState(company_secret)
<>
  <Form.Input
    name="id"
    value={companyId}
    onChange={(e) => setCompanyId(e.target.value)}
  />
  <Form.Input
    name="secret"
    value={companySecret}
    onChange={(e) => setCompanySecret(e.target.value)}
  />
</>

Edit semantic-ui-modal-fz1su

附注我建议使用camelCase变量随处可见(除非您绝对必须使用 snake_case )以保持一致性。

关于javascript - 警告 : validateDOMNesting(…): <form> cannot appear as a descendant of <form> by using semantic-ui-react modal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66755177/

相关文章:

css - 语义用户界面样式输入不起作用

javascript - 告诉 ember.js 为其模型的 "id"使用不同的 key

javascript - 如何在AngularJS中等待多个请求完成

javascript - 将父属性传递给子元素reactjs

javascript - CSS 覆盖 UI 属性 - 带或不带 !important

angular - 语义 UI - Accordion 未在 Angular 中扩展

javascript - 使用jquery打开弹出窗口时如何避免刷新页面或后退按钮点击?

javascript - 取消后提交仍在继续Confirm()

javascript - 如何从消费者更新提供者中的上下文值?

reactjs - 如何更改 Material UI 中的选项卡宽度