简体   繁体   English

警告:validateDOMNesting(...): <form> 不能作为 <form>

[英]Warning: validateDOMNesting(…): <form> cannot appear as a descendant of <form>

In reactjs, I am using the ant-design library for a form. 在reactjs中,我将ant-design库用于表单。 In the console i face this problem: 在控制台中,我面临这个问题:

 Warning: validateDOMNesting(...): <form> cannot appear as a descendant of <form> 

Can someone show me what mistake I made in my code? 有人可以告诉我我在代码中犯了什么错误吗?

在此处输入图片说明

code

import React, { component } from 'react';
import styled from 'styled-components';
import 'antd/dist/antd.css';
import './FirstStep.css';
import { Form, Input } from 'antd';
class RegisterStepOne extends React.Component {

  render() {
    const { getFieldDecorator } = this.props;
    return (
      <div>
        <FormCard>
          <Form onSubmit={this.handleSubmit} className="login-form">
            <FormItem>
              {getFieldDecorator('firstName', {
                rules: [
                  {
                    required: true,
                    message: 'Please input your First name!',
                    whitespace: true,
                  },
                ],
              })(<Input placeholder="First name" />)}
            </FormItem>
            <FormItem>
              {getFieldDecorator('lastName', {
                rules: [
                  {
                    required: true,
                    message: 'Please input your Last name!',
                    whitespace: true,
                  },
                ],
              })(<Input placeholder="Last name" />)}
            </FormItem>
            <FormItem>
              {getFieldDecorator('email', {
                rules: [
                  {
                    type: 'email',
                    message: 'The input is not valid E-mail!',
                  },
                  {
                    required: true,
                    message: 'Please input your E-mail!',
                  },
                ],
              })(<Input placeholder="Email" />)}
            </FormItem>
            <FormItem>
              {getFieldDecorator('lastPosition', {
                rules: [
                  {
                    required: true,
                    message: 'Please input your Last Position!',
                    whitespace: true,
                  },
                ],
              })(<Input placeholder="Present or last position" />)}
            </FormItem>
            <FormItem>
              {getFieldDecorator('lastCompany', {
                rules: [
                  {
                    required: true,
                    message: 'Please input your Last Company!',
                    whitespace: true,
                  },
                ],
              })(<Input placeholder="Present or last Company" />)}
            </FormItem>
          </Form>
        </FormCard>
      </div>
    );
  }
}
export default RegisterStepOne;

Looking at the console screenshot suggests that <RegisterStepOne /> is a child of a <form> somewhere higher up the component tree. 查看控制台屏幕快照,表明<RegisterStepOne /><form>的子元素,位于组件树的更高位置。

You are seeing the error because your DOM renders to something like this 您正在看到错误,因为您的DOM呈现了这样的内容

<form>
  <div>
    <form>
      <input />
    </form>
  </div>
</form>

Which is not valid HTML 哪个是无效的HTML

如何修复警告:validateDOMNesting(...):<div> 不能作为孩子出现</div><div id="text_translate"><p>我将用户列表作为道具传递给 UserItem 组件,以迭代用户列表并将它们显示在表上。 列表显示正确,我的渲染返回中没有任何 div,但我仍然收到错误:index.js:1446 Warning: validateDOMNesting(...): cannot appear as a child of.</p><p> 尝试了网上找到的许多解决方案,但没有一个有效</p><p>用户管理代码:</p><pre> import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import Spinner from './common/Spinner'; import { getUsers } from '../actions/userActions'; import UserItem from './UserItem'; class UsersManagement extends Component { componentDidMount() { if (.this.props.auth.isAuthenticated) { this.props.history;push('/login'). } this.props;getUsers(), } render() { const { users. loading } = this.props;user; let usersList. if (users === null || loading) { usersList = <Spinner /> } else { if (users.length > 0) { usersList = users.map(user => ( <UserItem key={user._id} user={user} /> )) } else { usersList = <h2>No users</h2> } } return ( <div className="row"> <div className="col-12"> <h1 className="text-center mb-2">Users Management</h1> <button type="button" className="btn btn-success mb-4">New User</button> <table className="table"> <thead> <tr> <th scope="col">Options</th> <th scope="col">Username</th> <th scope="col">Email</th> <th scope="col">Phone Number</th> </tr> </thead> <tbody> {usersList} </tbody> </table> </div> </div> ) } } UsersManagement:propTypes = { getUsers. PropTypes.func,isRequired: auth. PropTypes.object,isRequired: user. PropTypes.object:isRequired } const mapStateToProps = state => ({ auth. state,auth: user. state,user }) export default connect(mapStateToProps; { getUsers })(UsersManagement);</pre><p> 用户项目代码:</p><pre> import React, { Component } from 'react'; import PropTypes from 'prop-types'; class UserItem extends Component { render() { const { user } = this.props; console.log(user); return ( <tr> <th scope="row"> <button type="button" className="btn btn-primary fa-xs mr-1"><i className="fas fa-pencil-alt"></i></button> <button type="button" className="btn btn-danger fa-xs"><i className="far fa-trash-alt"></i></button> </th> <td>{user.username}</td> <td>{user.email}</td> <td>{user.phone}</td> </tr> ) } } UserItem.propTypes = { user: PropTypes.object.isRequired } export default UserItem;</pre><p> 我希望修复警告信息</p></div> - How to fix Warning: validateDOMNesting(...): <div> cannot appear as a child of <tbody>

Gatsby 警告:validateDOMNesting(...):不能作为子项出现<div></div><div id="text_translate"><p>我正在学习通过几个教程构建 Gatsby 站点。 我正在使用 Gatsby 2.13.50(CLI:2.7.14)。 通常,这些教程会教我们构建基本模板。 当我打开开发工具到控制台时,它加载得很好,除了这个警告:</p><pre> Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>.</pre><p> 警告非常非常长。 我将在我的代码之后发布它的 rest。</p><p> 我的 layout.js 基本模板位于 /src/components/layout.js。 它看起来像这样:</p><pre> import React from "react" const Layout = (props) => { return ( <html lang="en"> <head> <Helmet> <meta charSet="utf-8" /> <title>Demo</title> </Helmet> </head> <body> {props.children} </body> </html> ) } export default Layout</pre><p> 它由 /src/pages/index.js 使用,如下所示:</p><pre> import React from 'react' import Layout from '../components/layout' const IndexPage = () => { return ( <Layout> <h1>Demo onle.</h1> <p>Hello. This totally works fine.</p> </Layout> ) } export default IndexPage</pre><p> 如前所述,它有效,除了开发工具控制台中的非常长的警告。</p><p> 我用谷歌搜索了这个,但还没有发现这是怎么发生的以及如何避免它。 我发现有一个<a href="https://www.gatsbyjs.org/docs/custom-html/" rel="nofollow noreferrer">html.js</a>但我不知道这是否是某种默认模板以及我是否应该覆盖它以用作基本模板。 我试过了,但性能很差,所以我认为我错了。</p><p> 当我删除<html>标签时,我得到: Parsing error: Adjacent JSX elements must be wrapped in an enclosing tag.</p><p> 如果我用<div>替换它 它说<body> cannot appear as a child of <div></p><p> 这是很长的警告:</p><pre> Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>. in html (at layout.js:10) in Layout (at chat.js:6) in ChatPage (created by HotExportedChatPage) in AppContainer (created by HotExportedChatPage) in HotExportedChatPage (created by PageRenderer) in PageRenderer (at json-store.js:93) in JSONStore (at root.js:51) in RouteHandler (at root.js:73) in div (created by FocusHandlerImpl) in FocusHandlerImpl (created by Context.Consumer) in FocusHandler (created by RouterImpl) in RouterImpl (created by Context.Consumer) in Location (created by Context.Consumer) in Router (created by EnsureResources) in ScrollContext (at root.js:64) in RouteUpdates (at root.js:63) in EnsureResources (at root.js:61) in LocationHandler (at root.js:119) in LocationProvider (created by Context.Consumer) in Location (at root.js:118) in Root (at root.js:127) in _default (at app.js:65) __stack_frame_overlay_proxy_console__ @ index.js:2177 warningWithoutStack @ react-dom.development.js:507 validateDOMNesting @ react-dom.development.js:8625 createInstance @ react-dom.development.js:8737 completeWork @ react-dom.development.js:16901 completeUnitOfWork @ react-dom.development.js:19143 performUnitOfWork @ react-dom.development.js:19341 workLoop @ react-dom.development.js:19353 renderRoot @ react-dom.development.js:19436 performWorkOnRoot @ react-dom.development.js:20343 performWork @ react-dom.development.js:20255 performSyncWork @ react-dom.development.js:20229 requestWork @ react-dom.development.js:20098 scheduleWork @ react-dom.development.js:19912 enqueueSetState @ react-dom.development.js:11170./node_modules/react/cjs/react.development.js.Component.setState @ react.development.js:335 (anonymous) @ index.js:104 requestAnimationFrame (async) (anonymous) @ index.js:102 Promise.then (async) (anonymous) @ index.js:100 (anonymous) @ history.js:70 navigate @ history.js:69 (anonymous) @ navigation.js:103 Promise.then (async) navigate @ navigation.js:77 window.___navigate @ navigation.js:150 navigate @ index.js:213 onClick @ index.js:184 onClick @ index.js:464 callCallback @ react-dom.development.js:150 invokeGuardedCallbackDev @ react-dom.development.js:200 invokeGuardedCallback @ react-dom.development.js:257 invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:271 executeDispatch @ react-dom.development.js:562 executeDispatchesInOrder @ react-dom.development.js:584 executeDispatchesAndRelease @ react-dom.development.js:681 executeDispatchesAndReleaseTopLevel @ react-dom.development.js:689 forEachAccumulated @ react-dom.development.js:663 runEventsInBatch @ react-dom.development.js:817 runExtractedEventsInBatch @ react-dom.development.js:825 handleTopLevel @ react-dom.development.js:4827 batchedUpdates$1 @ react-dom.development.js:20440 batchedUpdates @ react-dom.development.js:2152 dispatchEvent @ react-dom.development.js:4906 (anonymous) @ react-dom.development.js:20491 unstable_runWithPriority @ scheduler.development.js:255 interactiveUpdates$1 @ react-dom.development.js:20490 interactiveUpdates @ react-dom.development.js:2171 dispatchInteractiveEvent @ react-dom.development.js:4883</pre><p> 我应该如何修复此警告?</p></div> - Gatsby Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 警告:validateDOMNesting(...):<a>不能作为后代出现</a> - Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a> 警告:validateDOMNesting(…):<form> 不能通过使用语义-ui-react 模态显示为的后代</form> - Warning: validateDOMNesting(…): <form> cannot appear as a descendant of <form> by using semantic-ui-react modal React --&gt; 警告:validateDOMNesting(...):<p> 不能作为后代出现<p> - React --> Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p> index.js:1 警告:validateDOMNesting(...):<ul> 不能作为后代出现<p></p></ul> - index.js:1 Warning: validateDOMNesting(...): <ul> cannot appear as a descendant of <p> 如何修复此警告 - 警告:validateDOMNesting(...): <a>cannot appear as a descendant of</a> <a>.</a> <a>下面是我的代码</a> - How do I fix this warning- Warning: validateDOMNesting(…): <a> cannot appear as a descendant of <a>. below is my code 警告:validateDOMNesting(…):<div> 不能作为孩子出现<tbody> - Warning: validateDOMNesting(…): <div> cannot appear as a child of <tbody> 如何修复警告:validateDOMNesting(...):<div> 不能作为孩子出现</div><div id="text_translate"><p>我将用户列表作为道具传递给 UserItem 组件,以迭代用户列表并将它们显示在表上。 列表显示正确,我的渲染返回中没有任何 div,但我仍然收到错误:index.js:1446 Warning: validateDOMNesting(...): cannot appear as a child of.</p><p> 尝试了网上找到的许多解决方案,但没有一个有效</p><p>用户管理代码:</p><pre> import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import Spinner from './common/Spinner'; import { getUsers } from '../actions/userActions'; import UserItem from './UserItem'; class UsersManagement extends Component { componentDidMount() { if (.this.props.auth.isAuthenticated) { this.props.history;push('/login'). } this.props;getUsers(), } render() { const { users. loading } = this.props;user; let usersList. if (users === null || loading) { usersList = <Spinner /> } else { if (users.length > 0) { usersList = users.map(user => ( <UserItem key={user._id} user={user} /> )) } else { usersList = <h2>No users</h2> } } return ( <div className="row"> <div className="col-12"> <h1 className="text-center mb-2">Users Management</h1> <button type="button" className="btn btn-success mb-4">New User</button> <table className="table"> <thead> <tr> <th scope="col">Options</th> <th scope="col">Username</th> <th scope="col">Email</th> <th scope="col">Phone Number</th> </tr> </thead> <tbody> {usersList} </tbody> </table> </div> </div> ) } } UsersManagement:propTypes = { getUsers. PropTypes.func,isRequired: auth. PropTypes.object,isRequired: user. PropTypes.object:isRequired } const mapStateToProps = state => ({ auth. state,auth: user. state,user }) export default connect(mapStateToProps; { getUsers })(UsersManagement);</pre><p> 用户项目代码:</p><pre> import React, { Component } from 'react'; import PropTypes from 'prop-types'; class UserItem extends Component { render() { const { user } = this.props; console.log(user); return ( <tr> <th scope="row"> <button type="button" className="btn btn-primary fa-xs mr-1"><i className="fas fa-pencil-alt"></i></button> <button type="button" className="btn btn-danger fa-xs"><i className="far fa-trash-alt"></i></button> </th> <td>{user.username}</td> <td>{user.email}</td> <td>{user.phone}</td> </tr> ) } } UserItem.propTypes = { user: PropTypes.object.isRequired } export default UserItem;</pre><p> 我希望修复警告信息</p></div> - How to fix Warning: validateDOMNesting(...): <div> cannot appear as a child of <tbody> 反应:警告:validateDOMNesting(...):空白文本节点不能作为子节点出现 - React: Warning: validateDOMNesting(…): Whitespace text nodes cannot appear as a child of <tr> 反应:警告:validateDOMNesting(…):文本节点不能显示为以下子项<tbody> - React: Warning: validateDOMNesting(…): Text nodes cannot appear as a child of <tbody> Gatsby 警告:validateDOMNesting(...):不能作为子项出现<div></div><div id="text_translate"><p>我正在学习通过几个教程构建 Gatsby 站点。 我正在使用 Gatsby 2.13.50(CLI:2.7.14)。 通常,这些教程会教我们构建基本模板。 当我打开开发工具到控制台时,它加载得很好,除了这个警告:</p><pre> Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>.</pre><p> 警告非常非常长。 我将在我的代码之后发布它的 rest。</p><p> 我的 layout.js 基本模板位于 /src/components/layout.js。 它看起来像这样:</p><pre> import React from "react" const Layout = (props) => { return ( <html lang="en"> <head> <Helmet> <meta charSet="utf-8" /> <title>Demo</title> </Helmet> </head> <body> {props.children} </body> </html> ) } export default Layout</pre><p> 它由 /src/pages/index.js 使用,如下所示:</p><pre> import React from 'react' import Layout from '../components/layout' const IndexPage = () => { return ( <Layout> <h1>Demo onle.</h1> <p>Hello. This totally works fine.</p> </Layout> ) } export default IndexPage</pre><p> 如前所述,它有效,除了开发工具控制台中的非常长的警告。</p><p> 我用谷歌搜索了这个,但还没有发现这是怎么发生的以及如何避免它。 我发现有一个<a href="https://www.gatsbyjs.org/docs/custom-html/" rel="nofollow noreferrer">html.js</a>但我不知道这是否是某种默认模板以及我是否应该覆盖它以用作基本模板。 我试过了,但性能很差,所以我认为我错了。</p><p> 当我删除<html>标签时,我得到: Parsing error: Adjacent JSX elements must be wrapped in an enclosing tag.</p><p> 如果我用<div>替换它 它说<body> cannot appear as a child of <div></p><p> 这是很长的警告:</p><pre> Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>. in html (at layout.js:10) in Layout (at chat.js:6) in ChatPage (created by HotExportedChatPage) in AppContainer (created by HotExportedChatPage) in HotExportedChatPage (created by PageRenderer) in PageRenderer (at json-store.js:93) in JSONStore (at root.js:51) in RouteHandler (at root.js:73) in div (created by FocusHandlerImpl) in FocusHandlerImpl (created by Context.Consumer) in FocusHandler (created by RouterImpl) in RouterImpl (created by Context.Consumer) in Location (created by Context.Consumer) in Router (created by EnsureResources) in ScrollContext (at root.js:64) in RouteUpdates (at root.js:63) in EnsureResources (at root.js:61) in LocationHandler (at root.js:119) in LocationProvider (created by Context.Consumer) in Location (at root.js:118) in Root (at root.js:127) in _default (at app.js:65) __stack_frame_overlay_proxy_console__ @ index.js:2177 warningWithoutStack @ react-dom.development.js:507 validateDOMNesting @ react-dom.development.js:8625 createInstance @ react-dom.development.js:8737 completeWork @ react-dom.development.js:16901 completeUnitOfWork @ react-dom.development.js:19143 performUnitOfWork @ react-dom.development.js:19341 workLoop @ react-dom.development.js:19353 renderRoot @ react-dom.development.js:19436 performWorkOnRoot @ react-dom.development.js:20343 performWork @ react-dom.development.js:20255 performSyncWork @ react-dom.development.js:20229 requestWork @ react-dom.development.js:20098 scheduleWork @ react-dom.development.js:19912 enqueueSetState @ react-dom.development.js:11170./node_modules/react/cjs/react.development.js.Component.setState @ react.development.js:335 (anonymous) @ index.js:104 requestAnimationFrame (async) (anonymous) @ index.js:102 Promise.then (async) (anonymous) @ index.js:100 (anonymous) @ history.js:70 navigate @ history.js:69 (anonymous) @ navigation.js:103 Promise.then (async) navigate @ navigation.js:77 window.___navigate @ navigation.js:150 navigate @ index.js:213 onClick @ index.js:184 onClick @ index.js:464 callCallback @ react-dom.development.js:150 invokeGuardedCallbackDev @ react-dom.development.js:200 invokeGuardedCallback @ react-dom.development.js:257 invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:271 executeDispatch @ react-dom.development.js:562 executeDispatchesInOrder @ react-dom.development.js:584 executeDispatchesAndRelease @ react-dom.development.js:681 executeDispatchesAndReleaseTopLevel @ react-dom.development.js:689 forEachAccumulated @ react-dom.development.js:663 runEventsInBatch @ react-dom.development.js:817 runExtractedEventsInBatch @ react-dom.development.js:825 handleTopLevel @ react-dom.development.js:4827 batchedUpdates$1 @ react-dom.development.js:20440 batchedUpdates @ react-dom.development.js:2152 dispatchEvent @ react-dom.development.js:4906 (anonymous) @ react-dom.development.js:20491 unstable_runWithPriority @ scheduler.development.js:255 interactiveUpdates$1 @ react-dom.development.js:20490 interactiveUpdates @ react-dom.development.js:2171 dispatchInteractiveEvent @ react-dom.development.js:4883</pre><p> 我应该如何修复此警告?</p></div> - Gatsby Warning: validateDOMNesting(...): <html> cannot appear as a child of <div>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM