Подтвердить что ты не робот

Неожиданный токен <ошибка в компоненте реагирующего маршрутизатора

Я пытаюсь написать компонент маршрутизатора для своего приложения-приложения. Я создаю новый класс реагирования и определяю некоторые маршруты в методе componentDidMount. Это полный метод

componentDidMount: function () {

    var me = this;

    router.get('/', function(req){
        me.setState({
            component: <MainPage />
        });
    });

    router.get('/realty', function(req){
        me.setState({
            component: <RealtyPage />
        });
    });

    router.get('/realty/:id', function(req){
        me.setState({
            component: <RealtyPage id={req.params.id} />
        });
    });

},

Когда я иду в '/' или '/realty', все работает. Но, когда я перехожу к "realty/new", у меня есть ошибка. Uncaught SyntaxError: Неожиданный токен < в app.js: 1. Но отладчик Chrome отображает эту ошибку в моем index.html, и я даже не могу отладить это в браузере. Эта ошибка возникает каждый раз, когда я иду на маршрут с помощью //. I.m пытается использовать другие клиентские маршрутизаторы, такие как page.js, rlite, grapnel, но все равно то же самое. Может кто-нибудь знает об этой ошибке?

UPD: это код fuul компонента маршрутизатора. Теперь он использует page.js для маршрутизации, и я вижу ту же ошибку

var React = require('react');
var page = require('page');


var MainPage = require('../components/MainPage');
var RealtyPage = require('../components/RealtyPage');


var Router = React.createClass({

    getInitialState: function(){
        return {
            component: <RealtyPage />
        }
    },

    componentDidMount: function () {

        var me = this;

        page('/', function (ctx) {
            me.setState({
                component: <MainPage />
            });
        });

        page('/realty', function (ctx) {
            me.setState({
                component: <RealtyPage />
            });
        });

        page.start();

    },

    render: function(){
        return this.state.component
    }
});

module.exports = Router;
4b9b3361

Ответ 1

Ошибка "неожиданного маркера" может отображаться по нескольким причинам. Я столкнулся с аналогичной проблемой, и в моем случае проблема заключалась в том, что тег script для загрузки сгенерированного пакета в html был таким:

<script src="scripts/app.js"></script>

При навигации по маршруту с параметром (то же самое произойдет с вложенным маршрутом или маршрутом с более чем одним сегментом), браузер попытается загрузить script с помощью неправильного URL-адреса. В моем случае путь маршрута был "user/: id", и браузер сделал запрос "http://127.0.0.1:3000/ пользователь/scripts/app.js 'вместо http://127.0.0.1:3000/scripts/app.js'. Решение было простым, измените тег script на это:

<script src="/scripts/app.js"></script>