Полимерное приложение использует redux для хранения состояния приложения. Идея состоит в том, чтобы сохранить всю маршрутизацию в состоянии (см. Изображение ниже). Я хочу использовать для этого redux-router, но я начал сталкиваться с проблемами уже в самом начале, когда пытаюсь импортировать библиотеку в свое приложение.
Код моего импорта выглядит так:
import { createStore, compose as origCompose, applyMiddleware, combineReducers } from 'redux';
import thunk from 'redux-thunk';
import { lazyReducerEnhancer } from 'pwa-helpers/lazy-reducer-enhancer';
import {ReduxRouter} from '../node_modules/redux-router/src/ReduxRouter.js'
import app from './reducers/app.js';
import route from './reducers/route.js';
import user from './reducers/user.js';
import events from './reducers/events.js';
Ошибка, которую я получаю с этим импортом:
Unexpected token =
Если я попытаюсь импортировать вот так:
import {ReduxRouter} from 'redux-router';
Я получил:
Uncaught SyntaxError: The requested module '../../node_modules/redux-router/lib/index.js' does not provide an export named 'ReduxRouter'
И если:
import {ReduxRouter} from '../node_modules/redux-router/src'
Затем:
Uncaught SyntaxError: Unexpected token export
Проблема может быть воспроизведена в приложении Starter Polymer 3. Или, я думаю, в любом полимерном приложении.
Так:



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


1.) Пытаться:
import 'redux-router';
Если пакет npm имеет экспорт по умолчанию, это должно позволить вам ссылаться на него в компоненте. Если нет, попробуйте импортировать это в конец index.html где-нибудь перед, например:
<script src = "node_modules/redux-router/dist/ReduxRouter.js"></script>
...
</body>
Примечание: / dist /, а не / src /
К вашему сведению, убедитесь, что вы заканчиваете свой оператор импорта точкой с запятой. Вы написали:
import { lazyReducerEnhancer } from 'pwa-helpers/lazy-reducer-enhancer';
import {ReduxRouter} from '../node_modules/redux-router/src/ReduxRouter.js'
В вашей последней строке нужна точка с запятой (возможно, это опечатка).
2.) Да, это возможно.
3.) Проверьте pwa-стартовый комплект - особенно посмотрите, как группа Polymer включила Redux и pwa-helpers / router.js для маршрутизации ...