当我尝试将React应用程序的基础知识加载到浏览器中时,我会围绕以下内容进行讨论。
元素类型无效:需要一个字符串(用于内置组件) 或类/函数(对于复合组件)但得到:undefined。
代码如下(test.tsx)
/// <reference path="./typings/tsd.d.ts" />
import * as React from "react";
import * as ReactDOM from 'react-dom'
ReactDOM.render(
<TodoApp name="jim"/>, document.getElementById('root')
);
class TodoApp extends React.Component<any, any>{
constructor(props) {super(props); this.state = {};}
render() {
return (
<div>
<button>hit me</button>
</div>
)
}
}
export default TodoApp;
的test.html
<html>
<body>
<div id="root"></div>
<script src="./bundle.js"></script>
</body>
</html>
tsx与Browserify一起编译并捆绑在一起,并且bundle.js中出现错误
具体来说是@ instantiateReactComponent(node)&amp;不变函数
非常感谢提前!!
答案 0 :(得分:3)
您正在调用render
并在定义之前传入一个组件。
// won't work!
var person = new Person() <-- undefined
class Person {}
// will work
class Person {}
var person = new Person()
类不会像函数一样被“提升”。