javascript - React.createElement : type is invalid in simple empty app

标签 javascript reactjs webpack-dev-server

仍然很难简单地运行简单的 react 应用程序(只是客户端来玩)。

构建正常(你可以看到配置here, previous question)

当我运行服务器时 - 客户端出现错误:

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in.

at invariant (transformed.js:304)
at ReactCompositeComponentWrapper.instantiateReactComponent [as _instantiateReactComponent] (transformed.js:11912)
at ReactCompositeComponentWrapper.performInitialMount (transformed.js:27510)
at ReactCompositeComponentWrapper.mountComponent (transformed.js:27401)
at Object.mountComponent (transformed.js:4158)
at mountComponentIntoNode (transformed.js:12676)
at ReactReconcileTransaction.perform (transformed.js:5756)
at batchedMountComponentIntoNode (transformed.js:12698)
at ReactDefaultBatchingStrategyTransaction.perform (transformed.js:5756)
at Object.batchedUpdates (transformed.js:29031)

这是代码:

index.js

var React = require('react');
var ReactDOM = require('react-dom');
var App = require('./components/App.js');

ReactDOM.render(
    <App />,
    document.getElementById('app')
);

index.html

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body>
        <div id='app'></div>
    </body>
</html>

App.js:

import React from 'react';
import ReactDOM from 'react-dom';
// import {render} from 'react-dom'; //didn't helped either

class App extends React.Component {
  render () {
    return (
      <div>
        <p> Hello React!</p>
      </div>
    );
  }
}

仅供引用:

答案是正确的,但也是一件事。 不要忘记更改 import 上的所有 require,如下所示(在 index.js 中):

import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.js';

最佳答案

它准确地告诉您问题是什么:

You likely forgot to export your component from the file it's defined in.

更改 App.js 类似于:

// ...
export default class App extends React.Component {
// ...
<小时/>

顺便说一句,为什么在 index.js 中使用 require 并在 App.js 中使用 ES6 导入?

关于javascript - React.createElement : type is invalid in simple empty app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320450/

相关文章:

javascript - Android 开发 - 在正常代码运行之前获取异步任务的结果

javascript - 使用一个链接 Javascript 切换多个 div

javascript - 如何使用 react-spring 创建视差固定 header

javascript - jsx 中 SVG 中 props 的正确语法

javascript - 如何在运行测试套件后退出 webpack-dev-server 执行

javascript - 困难的CSS定位问题

java - javascript中大量数据的高性能图表

javascript - Reactjs this.refs 与 document.getElementById

ruby-on-rails - 如何从 Rails App 中完全删除 webpack 及其所有依赖项

javascript - Webpack react 热加载器不工作