【发布时间】:2016-12-02 10:34:06
【问题描述】:
我正在构建一个在整个应用程序中使用的 Header 组件。我正在使用 React 和 Redux (obvz) 来保持 Header 的默认状态,例如在 header reducer 的默认 state 参数中:
state = {
showUserMenu: true,
redirectUrl: '/'
}
这对于所有组件来说都是完美的,但对于某些路由/组件,我希望标题不显示用户菜单。
所以当这些组件挂载时,我会向 HIDE_USER_MENU 发送一个操作。
问题在于,因为默认设置为true,所以userMenu最初会在那里,即使在componentWillMount中调用dispatch,也会有一瞬间出现userMenu。
所以没有默认值?但反过来也是如此,它默认不显示菜单,并且仅在操作处理完毕后才出现。
This is nice,但它并没有更进一步(以我的示例为例)并解释了如何根据路由或组件选择减速器。
我也尝试过使用 react-router-redux 基于 location.pathname 触发操作,但即使这样也不会发生得足够快,无法避免 FOUH(不需要的标题闪烁!:'()
我想知道是否存在用于动态加载初始状态的既定模式,该模式保证会出现在初始渲染中。
希望我的要求很清楚,非常感谢任何帮助!
【问题讨论】:
标签: reactjs redux react-redux