无法读取未定义的 属性 'Component'

Cannot read property 'Component' of undefined

每当我想使用 Ant design Component 时,我都会发现这个标题的错误:

antd.min.js:23 Uncaught TypeError: Cannot read property 'Component' of undefined
    at Object.<anonymous> (antd.min.js:23)
    at t (antd.min.js:7)
    at Object.<anonymous> (antd.min.js:31)
    at t (antd.min.js:7)
    at Object.<anonymous> (antd.min.js:50)
    at t (antd.min.js:7)
    at Object.<anonymous> (antd.min.js:7)
    at t (antd.min.js:7)
    at antd.min.js:7
    at antd.min.js:7

我用的是最新版本(3.7.3)

在这部分我使用了Layout Component ant design:

import React, {Component} from 'react';

import ReactDOM from 'react-dom';

import { Layout, Menu, Icon } from 'antd';

const { Header, Content, Footer, Sider } = Layout;

ReactDOM.render(
  <Layout>
    <Sider
      breakpoint="lg"
      collapsedWidth="0"
      onBreakpoint={(broken) => { console.log(broken); }}
      onCollapse={(collapsed, type) => { console.log(collapsed, type); }}
    >
      <div className="logo" />
      <Menu theme="dark" mode="inline" defaultSelectedKeys={['4']}>
        <Menu.Item key="1">
          <Icon type="user" />
          <span className="nav-text">nav 1</span>
        </Menu.Item>
        <Menu.Item key="2">
          <Icon type="video-camera" />
          <span className="nav-text">nav 2</span>
        </Menu.Item>
        <Menu.Item key="3">
          <Icon type="upload" />
          <span className="nav-text">nav 3</span>
        </Menu.Item>
        <Menu.Item key="4">
          <Icon type="user" />
          <span className="nav-text">nav 4</span>
        </Menu.Item>
      </Menu>
    </Sider>
    <Layout>
      <Header style={{ background: '#fff', padding: 0 }} />
      <Content style={{ margin: '24px 16px 0' }}>
        <div style={{ padding: 24, background: '#fff', minHeight: 360 }}>
          content
        </div>
      </Content>
      <Footer style={{ textAlign: 'center' }}>
        Ant Design ©2018 Created by Ant UED
      </Footer>
    </Layout>
  </Layout>,
  document.getElementById('main'));

但不幸的是我遇到了错误,而我只是复制了 antdesign 代码。不知道是什么问题,求大神指教

我不知道 Ant 设计组件,但是根据您提供的堆栈跟踪,我可以说 antd 对象不存在.这可能是由于 antd 没有正确加载。我建议您通过尝试 console.log(antd) 或任何对象名称来检查 antd 是否正在加载。

另外,请提供相关代码,以便我们更好地帮助您。

我看不到你的代码库,但我想原因是你试图按需导入,但没有在你的项目中使用 babel-plugin-import。

请参阅文档中的 Import on Demand 部分。

如果你使用的是create-react-app,可以查看说明here

问题出在我的 gulp 和 browserify 配置中。我试图改变我正在使用的技术,我切换到 webpack 比 gulp 有更多的好处,可以在下面的 link:

中阅读

gulp vs browserify vs webpack

这有点晚了,但这听起来像是打字稿错误。如果其他人遇到此更改

import React, {Component} from 'react'

import * as React from 'react'

如果您遇到此错误,请同时尝试这两种方法。它将起作用:

错误:

解决方案一:

import React from "react";

class Greetings extends React.Component {
  render() {
    return <div>working</div>;
  }
}

方案二:

import React, { Component } from 'react';

class Greetings extends Component {
  render() {
    return <div>working</div>;
  }
}