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

React dependency needs to start with capital letter for JSX to work

本文关键字:JSX 工作 开头 大写字母 依赖 React      更新时间:2023-09-26

我们目前使用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模块的变量?

您可以使用transform-react-jsx Babel插件编译设置来生成另一个表达式。这样你就可以用JSX做完全不同的事情。

在你的.babelrc文件中试试:

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