发布于 4年前

webpack中遇到的问题 Warning: React.createElement: type is invalid -- expected a string

我的浏览器中错误提示:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.
error: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.

查找了很多相关的资料,
1、其中有使用 import {XXX} from XXX 改成import XXX from XXX解决的;
2、有return跟“(”不在一行,编译后js加“;”,导致问题出现,解决就是讲return跟“(”位于一行即可;
其中主要的解决路径就是第一种方法。
而我的问题却跟这个是没有关系的,我是一个webpack、react以及babel的新手,所以开始的比较困难,我的问题在于在插件中使用render,后来通过别人才发现并且明白render是只能在入口文件被渲染,插件只要export出来就好。
看下我的插件写法:

var React = require('react');
var ReactDOM = require('react-dom');
class HelloMessage extends React.Component {
  render() {
    return <div>Hello {this.props.name}</div>;
  }
}
ReactDOM.render(<HelloMessage name = "yaya"/>,document.getElementById('root'));

解决方法是:把最后一行改成module.exports = HelloMessage;即可

©2020 edoou.com   京ICP备16001874号-3