【问题标题】:Warning: validateDOMNesting(…): <form> cannot appear as a descendant of <form> by using semantic-ui-react modal警告:validateDOMNesting(...): <form> 不能作为 <form> 的后代出现,使用语义-ui-react 模态
【发布时间】:2021-03-22 23:25:42
【问题描述】:

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

警告:validateDOMNesting(…):不能作为后代出现 的

如果表格中有表格,我知道它是显示。

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

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>
  );
};

【问题讨论】:

    标签: javascript reactjs semantic-ui


    【解决方案1】:

    form 不能包含在 form 中。渲染Modal 组件时移除as={Form}。您还应该修复函数参数,因为组件接收props 对象。你应该解构company_idcompany_secretonSubmit

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

    &lt;Form.Input&gt; 组件存在一些问题。您应该将 valueonChange 道具传递给他们。您可以创建几个状态变量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)}
      />
    </>
    

    附:我建议在任何地方都使用camelCase 变量(除非您绝对必须使用snake_case)以保持一致性。

    【讨论】:

    • 非常感谢,它有效。我将蛇案例修复为 cameCase
    猜你喜欢
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2021-10-25
    • 2021-05-30
    • 2019-02-15
    • 2019-09-01
    • 2023-02-11
    相关资源
    最近更新 更多