0

聚合物应用程序正在使用 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';

我通过此导入得到的错误是:

意外令牌 =

如果我尝试像这样导入:

import {ReduxRouter} from 'redux-router';

我得到:

未捕获的语法错误:请求的模块“../../node_modules/redux-router/lib/index.js”不提供名为“ReduxRouter”的导出

而如果:

import {ReduxRouter} from '../node_modules/redux-router/src'

然后:

未捕获的 SyntaxError:意外的令牌导出

该问题可以在起始聚合物 3 应用程序中重现。或者,我认为,在任何聚合物应用程序中。

所以:

  1. 什么是正确的导入方式?
  2. 如果我只需要在状态中存储所有路由和历史记录,我可以在聚合物应用程序中使用 redux-router(没有反应)吗?
  3. 我还有什么其他选择。你知道有什么好的图书馆吗?
4

1 回答 1

0

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-starter-kit——特别是查看 Polymer 组如何包含 Redux 和 pwa-helpers/router.js 用于路由...

于 2018-08-09T14:50:32.953 回答