我来自Angular 1说实话,我知道有点棱角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 {
/* ... *?
}
}
其中SomeRoute
是component
属性为ReactRouter.Route
的任何组件:
<Router>
<Route component={SomeRoute}/>
</Router>
https://github.com/ReactTraining/react-router/blob/master/docs/guides/ConfirmingNavigation.md