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 挂钩?的主要内容,如果未能解决你的问题,请参考以下文章

React(0.13) hello world

React(0.13) 定义一个动态的组件

React(0.13) 定义一个动态的组件(函数作为动态的值)

mysql8.0.13安装

sh 如何在新的Ubuntu安装上构建比特币(0.13)

sudo: unable to resolve host iZ2zecsdy8flu603bmdg1bZ