React依赖需要以JSX的大写字母开头才能工作

时间:2016-09-19 14:37:21

标签: javascript reactjs babel

我们目前将reactjs与requirejs一起使用,babel正在运行jsx。我们想写这样的代码:

define([
    'react'
], function(react) {
    return react.createClass({
        render: function() {
            return (
                    <div>
                        excellent code
                    </div>
            )
        }
    });
});

使用小写“react”,因为它不是构造函数或类。

但是,如果我们这样做,转换后的代码将尝试使用变量React,事情将会破坏:

(...)
render: function () {

    return React.createElement(
        'div',
        null,
(...)

是否可以更改已转换代码用于react模块的变量?

1 个答案:

答案 0 :(得分:1)

您可以使用transform-react-jsx Babel插件pragma设置生成其他表达式。这样你就可以将JSX用于完全不同的东西。

.babelrc文件中尝试此操作:

{
  "presets": ["es2015", "stage-0", "react"],
  "plugins": [
    ["transform-react-jsx", {
      "pragma": "react.createElement"
    }]
  ]
}