当我使用 react-tools
中的转换器转换反应文件时 $ jsx public/dev/jsx public/prod/js --no-cache-dir
或者当我使用 grunt-react
进行转换时 $ grunt react
我的生产文件因为转换使用React.createElement
而中断,错误显示此函数未定义。
<h1>{this.state.title}</h1>
转换为:
React.createElement("div", null,
React.createElement("h1", null, this.state.title)
而不是:
React.DOM.h1(null, this.state.title)
实时转换器工作正常,因为它使用React.DOM.h1(null, this.state.title)
。这行代码适用于react,但React.createElement()
函数不起作用且找不到。
如何强制我的自动转换器(JSX或grunt)转换为React.DOM.h1(null)
而不是React.createElement(h1, null)
。为什么转换器使用这个功能?
答案 0 :(得分:4)
我在coffee-react-transform lib中遇到了同样的错误。这些库正在针对React 0.12进行更新。如果您还在使用React 0.11,那么您可能需要回滚grunt-react到稍微旧的版本,或者碰到React 0.12。
答案 1 :(得分:0)
是的,我实际上已更新到React 0.12并开始工作......谢谢。