路线变更前解决数据

时间:2017-02-24 02:24:42

标签: reactjs react-router react-router-redux

我来自Angular 1说实话,我知道有点棱角2,反应过来。我对这两种架构都了如指掌,但我并不能像快乐大师那样制作快速的应用程序。

我遇到了问题。在角度很容易,在路线改变之前,我可以解决或不解决我的数据来改变路线,包括我的控制器/视图。

如何做出反应?因此,一旦我的数据得到解决,请立即更改路线。我没有发现任何有趣的内容。

2 个答案:

答案 0 :(得分:0)

如果您使用react-router进行导航,则可以挂钩onEnter并将呼叫推迟到callback,直到您的数据得到解决。

https://github.com/ReactTraining/react-router/blob/v3/docs/API.md#onenternextstate-replace-callback

答案 1 :(得分:0)

有几种方法,您可以尝试setRouteLeaveHook

class SomeRoute extends Component {
    componentDidMount() {
        this.props.router.setRouteLeaveHook(
            this.props.route,
            nextRoute => this.routerWillLeave(nextRoute)
        );
    }

    routerWillLeave(nextRoute: History.LocationDescriptor): boolean | void {
        /* ... *?
    }
}

其中SomeRoutecomponent属性为ReactRouter.Route的任何组件:

<Router>
    <Route component={SomeRoute}/>
</Router>

https://github.com/ReactTraining/react-router/blob/master/docs/guides/ConfirmingNavigation.md