Uncaught SyntaxtError: неожиданный идентификатор при попытке импортировать React - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть простой компонент React, который я пытаюсь включить в веб-страницу.Компонент выглядит следующим образом (в файле like_button.js).Этот JSX, который я компилирую, используя babel v6.4.1.

'use strict';

import React, {Component} from 'react';

const e = React.createElement;

class LikeButton extends Component {
    constructor(props) {
        super(props);
        this.state = { liked: false };
    }

    render() {
        if (this.state.liked) {
            return 'You liked this.';
        }

        return (
            <button onClick={() => this.setState({ liked: true })}>
                Like
            </button>
        );
    }
}

const frmReg = document.querySelector('#frmReg');
ReactDOM.render(e(LikeButton), frmReg)

HTML-страница (index.php), которую я пытаюсь использовать, выглядит следующим образом.

<html>
<head>
    <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
    <!-- Load our React component. -->
</head>
<body>
    <div id="frmReg"></div>
</body>
<!-- <script src="assets/js/like_button.js"></script> -->
<script src="assets/js/admincomponent.js"></script>
</html>

Mypackage.json файл выглядит следующим образом.

{
  "name": "react_dt",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel": "^6.5.2",
    "babel-cli": "^6.9.0",
    "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1"
  }
}

Также включены .babelrc, включенные в корень проекта, который выглядит следующим образом.

{
    presets: ["es2015", "react"],
    plugins: ["transform-es2015-modules-amd"]
}

Однако, когда я пытаюсь запуститьэто в браузере, я не вижу ничего на странице.Кроме того, в консоли инструментов разработчика у меня появляется ошибка Uncaught SyntaxError: Unexpected identifier с выделенным оператором import React, { Component } from 'react';.

Я пробовал то же самое без оператора импорта и получилэто работать без нареканий .Так что в основном это сводится к проблеме с import.После исследования я прочитал, что это проблема от ES5 до ES6 (ES2015) .Кроме того, я нашел около 5 странных вопросов по той же проблеме, которые ни одно из их решений не помогло мне найти решение.

Что не так?Почему он не позволяет мне делать импорт?

1 Ответ

0 голосов
/ 14 сентября 2018

Пожалуйста, установите пакеты react и react-dom.Когда вы импортируете пакет, это означает, что пакет установлен в node_modules.Он найдет пакет в папке node_modules и покажет ошибку, если не найден.

Собираете ли вы файл javascript с помощью babel?Пожалуйста, используйте Babel скомпилированный Javascript в проекте.Вы можете использовать babel-node для компиляции вашего javascript в es5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...