鍍金池/ 問答/HTML/ 為什么import React from 'react',React首字母必須大

為什么import React from 'react',React首字母必須大寫?

為啥我import React from 'react'沒事,但是import react from 'react'就會報錯?

錯誤信息為:'React' must be in scope when using JSX react/react-in-jsx-scope

這個不是解構(gòu)吧,還要求名稱一致?

而且index.js里面沒有使用React,在把jsx轉(zhuǎn)化的時候,到底是提供了怎么樣一個環(huán)境呢?難道是自執(zhí)行函數(shù),但是直接import 'react'也報相同錯誤。

雖然感覺有點(diǎn)鉆牛角尖,但是我實(shí)在搜索不到相關(guān)問題,望有人能夠解答一二,謝謝!

回答
編輯回答
影魅
  1. 你使用的‘react’文件 最后使用 module.exports = React;
  2. 所以需要使用 import React from 'react';
  3. 要是你想使用 react 的話 ,可以使用 as 對導(dǎo)出的React 重命名。
  4. 詳細(xì)可參考es6 module
2018年5月7日 07:11
編輯回答
逗婦惱

import foo from 'react'
const React = foo

因?yàn)槟惝?dāng)前作用域內(nèi),并沒有名為 React 的對象。你 import 的時候可以另取別名, 但是 JSX 編譯后依賴這個
React。

2017年5月21日 05:32
編輯回答
拽很帥

import會被編譯成require,而require是commonjs規(guī)范里的

2017年1月6日 20:30
編輯回答
澐染

React的組件首字母必須大寫,請參考 !?。?/p>

大家好,我是Artwork全棧工程師。目前在 BAT 中的一家搬磚。從事前端工作9年有余,算是個老鳥了。希望可以幫助新人快速進(jìn)階,少走彎路,能把我的經(jīng)驗(yàn)分享給大家。To learn more, please join us ,QQ Group:622923327

2017年12月28日 07:46
編輯回答
祈歡

把jsx編譯到j(luò)s需要調(diào)用一個函數(shù), 這個函數(shù)在React叫React.createElement. 你可以比較一下jsx和編譯出的js.

2017年11月18日 22:23
編輯回答
不歸路

請題主采納正確的答案,以免誤導(dǎo)后來人:

  • 目前采納的“小火車”的回答是完全錯誤的;
  • “jokester”的回答才是正確的。
import React from 'react';
const comp = () => (
    <div>something...</div>
);
//...

// 編譯 JSX 后:

import React from 'react';
const comp = () => (
    React. createElement('div', null, 'something...' )
);
//...

這個問題跟首字母是不是大寫沒有關(guān)系,是必須使用React

2017年4月17日 18:02
編輯回答
孤客

這是個約定熟成,不大寫,babel編譯會出錯

2017年7月29日 07:31
編輯回答
囍槑
var React = {
    ...
}
module.exports = React;

React源碼中exports的接口名稱就是React,import時的變量名稱必須和exports的接口一致,exports的使用參考

2018年4月25日 16:34