我的浏览器中错误提示:
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;即可