React-router (0.13) + Flux - 如何将通量类实例放入 willTransitionTo 挂钩?
Posted
技术标签:
【中文标题】React-router (0.13) + Flux - 如何将通量类实例放入 willTransitionTo 挂钩?【英文标题】:React-router (0.13) + Flux - how to get flux class instance into willTransitionTo hook? 【发布时间】:2015-09-20 14:08:17 【问题描述】:我有一个容器组件,用于所有需要授权访问的路由。但是我需要一个通用的生命周期钩子来询问 Flux 商店“用户是否登录?”。问题是static willTransitionHook
无法访问道具(或上下文):
class AuthenticatedHandler extends React.Component
static willTransitionTo(transition)
// `this.props.flux` is not accessible
componentDidMount()
console.log('did mount', this.props);
render()
const flux = this.props;
return (
<FluxComponent flux=flux connectToStores=
user: store => (
isLoggedIn: store.isLoggedIn(),
user: store.getUser()
)
>
<RouteHandler />
</FluxComponent>
);
您提出什么解决方案?使用componentDidMount
+ componentDidUpdate
?谢谢!
【问题讨论】:
【参考方案1】:确实没有办法解决这个问题。如果你想接收flux
作为道具,你不能依赖willTransitionTo
。
但是,您可以使用 componentWillReceiveProps
,我相信它是由 React 路由器调用的。
如果您想禁止首先进行过渡,但我不确定您应该如何进行。
【讨论】:
以上是关于React-router (0.13) + Flux - 如何将通量类实例放入 willTransitionTo 挂钩?的主要内容,如果未能解决你的问题,请参考以下文章