импорт реагирует (строчные буквы) против импорт реагирует (прописные) - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь импортировать реагировать в нижнем регистре

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 ]

1 голос
/ 10 апреля 2019

JSX - просто сахар для React.createElement вызовов , поэтому, если вы назовете React import равным react, React не будет определено.

Если вы по какой-то причинехотите изменить на react.createElement и импортировать react, , вы можете изменить прагму, например, // @jsx react.createElement комментарий .

0 голосов
/ 10 апреля 2019

Когда вы используете функцию рендера внутри класса компонента, она преобразует приведенный выше синтаксис jsx в React.createElement. Эта ссылочная ошибка на самом деле является этой "Реакцией".

0 голосов
/ 10 апреля 2019

Вам нужно import React from react.

Код, похожий на обычный HTML, на самом деле является JSX, который после транспиляции через веб-пакет использует 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...