【问题标题】:JSX elements with no children must be self-closing没有子元素的 JSX 元素必须是自关闭的
【发布时间】:2019-09-03 07:02:12
【问题描述】:

我可以正确运行这段代码。但是当我将代码提交到 git 时,它会显示“错误:src/layouts/index.tsx:25:9 - 没有子级的 JSX 元素必须是自动关闭的”。

我尝试添加 React.Fragment 标签。但它不起作用。我也删除了第 25 行。但同样的错误显示。仍然是'index.tsx:25:9'。 我也尝试过使用自闭。但我必须为 Menu.Item 赋予价值。

这是我的代码:

import * as React from 'React';
import {Menu, Icon} from 'antd';
import './test.less';
import styles from './index.css';

const SubMenu = Menu.SubMenu;
class LeftBar extends React.Component{
  constructor(props: any) {
    super(props);
  }
  hideLeftBar = () => {
    // console.log(styles);
  }
  public render() {
    return (
      <div className={styles.leftbar}>
        <Menu
          className={styles.menu}
          mode="inline"
          // openKeys={this.state.openKeys}
          // onOpenChange={this.onOpenChange}
          style={{ width: 250 }}
        >
          <SubMenu className="test" key="sub1" title={<span><Icon type="mail" /><span>Navigation One</span></span>}>
            <Menu.Item key="2">Option 2</Menu.Item>
            <Menu.Item key="3">Option 3</Menu.Item>
            <Menu.Item key="4">Option 4</Menu.Item>
          </SubMenu>
          <SubMenu key="sub2" title={<span><Icon type="appstore" /><span>Navigation Two</span></span>}>
            <Menu.Item key="5">Option 5</Menu.Item>
            <Menu.Item key="6">Option 6</Menu.Item>
            <SubMenu key="sub3" title="Submenu">
              <Menu.Item key="7">Option 7</Menu.Item>
              <Menu.Item key="8">Option 8</Menu.Item>
            </SubMenu>
          </SubMenu>
          <SubMenu key="sub4" title={<span><Icon type="setting" /><span>Navigation Three</span></span>}>
            <Menu.Item key="9">Option 9</Menu.Item>
            <Menu.Item key="10">Option 10</Menu.Item>
            <Menu.Item key="11">Option 11</Menu.Item>
            <Menu.Item key="12">Option 12</Menu.Item>
          </SubMenu>
          <div onClick={this.hideLeftBar} className={styles.hide}/>
        </Menu>
      </div>
    );
  }
}

export default LeftBar;

希望我可以成功提交并将其推送到我的远程存储库。

【问题讨论】:

标签: reactjs typescript antd


【解决方案1】:

这个错误只是意味着而不是例如:

&lt;div&gt;&lt;/div&gt;

你应该有:

&lt;div /&gt;

后者是自动关闭的。

【讨论】:

  • 我还想指出,这是 linting 规则可能对开发人员工作流程造成极大危害的地方。如果它一直引起问题,也许可以尝试禁用此规则。或者至少是一种可以清除这些问题的保存格式
  • 但是如果我想在
    之间添加一些东西呢?就像我的代码中的 Menu.Item 一样。以及如何禁用这部分规则?
  • 是的,这样做很好,例如&lt;div&gt;&lt;whatever /&gt;&lt;/div&gt; 应该可以正常工作。只需确保 &lt;whatever /> 实际上没有崩溃(呈现为 null)。
  • 我可以使用npm uninstall pre-commit吗?会不会造成一些不好的结果?
  • 还是应该删除 package.json 中的"precommit": "lint-staged"
猜你喜欢
  • 2020-05-25
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2023-02-13
  • 1970-01-01
相关资源
最近更新 更多