JSX Converter使用React.createElement(" h1",null)代替React.DOM.h1(null)

时间:2014-10-31 02:16:54

标签: reactjs gruntjs react-jsx

JSX Transformer导致错误

当我使用 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)。为什么转换器使用这个功能?

2 个答案:

答案 0 :(得分:4)

我在coffee-react-transform lib中遇到了同样的错误。这些库正在针对React 0.12进行更新。如果您还在使用React 0.11,那么您可能需要回滚grunt-react到稍微旧的版本,或者碰到React 0.12。

答案 1 :(得分:0)

是的,我实际上已更新到React 0.12并开始工作......谢谢。