每次组件呈现时,状态似乎都恢复为默认值

State seems to revert to default each time a component renders

我正在开发一个 React/Redux/Thunk/React 路由器应用程序,每次组件呈现时,状态似乎都意外地恢复到每个 reducer 的默认状态。

例如:

我浏览到 Homepage 路由,呈现 Homepage 组件,状态设置正确 - 新状态在 loggerMiddleware 的输出中按预期显示,应用程序按预期工作。

但是,当我浏览到另一条路线并呈现一个 EventPage 组件时,就好像状态是 empty/default - mapStateToProps 中的 state 参数只是一个空对象列表,就好像我看到了 combinereducers 的默认输出。我在 loggerMiddleware 输出中看到同样的事情。同样,当我浏览回主页组件时,状态再次变为 empty/default.

我的期望是状态将在页面 views/component 呈现之间保持不变。对吗?

相关应用程序的一些摘录,以防它有助于识别我犯的任何错误 - 也很乐意提供更多内容:

活动页面和主页底部components/containers:

export default connect(mapStateToProps, mapDispatchToProps)(HomePage);

export default connect(mapStateToProps, mapDispatchToProps)(EventPage);

index.js

中定义的路由器
ReactDOM.render(
    <Provider store={store}>
        <Router history={browserHistory}  >
            <Route path="/" component={HomePage}/>
        <Route path="EventsSimpleList" component={EventsSimpleList}/>
            <Route path="events/:eventId" component={EventPage}/>
        </Router>
    </Provider>
  , document.querySelector('#root'));

我的 rootReducer 定义:

const rootReducer = combineReducers({
  EventsToAssets: EventsToAssetsReducer,
  Assets: AssetsReducer,
  Events: EventsReducer,
  Venues: VenuesReducer,
  Artists: ArtistsReducer,
  Homepage: HomepageReducer
});

export default rootReducer;

我已通过将 <a> 元素替换为从 react-router 导入的 <Link> 元素来解决问题。这不能解决用户在地址栏中手动输入新 URL 的问题,但可以解决链接的问题。我相信这实际上是预期的行为。如果我错了,我相信有人会纠正我。