导入react(小写)vs导入React(大写)

时间:2019-04-10 11:36:55

标签: javascript reactjs eslint

我正在尝试导入小写的

import react from 'react'(小写)

进入我的组件
我知道我在这里输入了小写字母 实际上,当我将其变成大写字母时,它确实得到了纠正

import React from 'react'(大写)

这是我的代码

import react from 'react'
class Test extends react.Component{
    render(){
        return(
            <div>
                hi there
            </div>
        );
    }
}

这是小写形式时出现的错误:

Uncaught ReferenceError: React is not defined

我的问题是为什么会这样?

3 个答案:

答案 0 :(得分:1)

JSX is just sugar for React.createElement calls,因此,如果将React导入命名为react,则不会定义React

如果您出于某种原因想要更改为react.createElement并导入reactyou can change the pragma with e.g. a // @jsx react.createElement comment

答案 1 :(得分:0)

您需要import React from react

看起来像纯HTML的代码实际上是JSX,在Webpack编译后使用React.createElement

import React from 'react'
class Test extends React.Component{
    render(){
        return(
            <div>
                hi there
            </div>
        );
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

答案 2 :(得分:0)

当您在组件类中使用render函数时,它将上面的jsx语法转换为React.createElement。此参考错误实际上是此“反应”造成的。

相关问题