Не работает import после транспиляции JSX в JS (ES6) [дубликат]

125
07 марта 2021, 14:50
На этот вопрос уже даны ответы здесь:
Правильный import/export React (2 ответа)
Закрыт 1 год назад.

Начал изучать React параллельно с JS. В своем коде использую препроцессор JSX. Для того, чтобы браузер смог воспринимать код на JSX, его надо преобразовать в обычный JS. В качестве транспайлера использую Babel с пресетом react: npm install babel-preset-react --save-dev. Саму транспиляцию выполняю: babel test.js -o test2.js --presets react. В итоге получаю:

test.js

import btnName from './name.js';
class MainPage extends React.Component {
    render()
    {
        return (
            <div>
                <button>{btnName}</button>
            </div>
        );
    }
}
ReactDOM.render(
    <MainPage />,
    document.getElementById('root')
);

name.js

export btnName = "button";

test2.js

import btnName from './name.js';
class MainPage extends React.Component {
    render() {
        return React.createElement(
            'div',
            null,
            React.createElement(
                'button',
                null,
                btnName
            )
        );
    }
}
ReactDOM.render(React.createElement(MainPage, null), document.getElementById('root'));

После подключения test2.js к index.html не происходит ничего. Но стоит убрать import и заменить btnName в методе render на обычную строку, то все становиться нормально. С чем это связано? Как все-таки использовать import?

Answer 1

Судя по докам мозилы, нужно экспортировать так: export const btnName = "button". Но, лично у меня, на такую конструкцию Chrome ругается, что нет экспорта "default" из модуля.

А вот следующая работает нормально:

const btnName = "button";
export default btnName;

Но Google, к примеру, не рекомендует пока использовать ES6 модули, т.к. их семантика не финализирована.

READ ALSO
Перехват аудио потока C++ linux

Перехват аудио потока C++ linux

Проще говоря я хочу сделать эквалайзер на C++, но возникает вопрос: как перехватить любые звуки в системе?

109
Как переделать код под вывод [закрыт]

Как переделать код под вывод [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

99
проверка строки на число [закрыт]

проверка строки на число [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

116