RectJS路由器:https://github.com/ReactTraining/react-router
使用此页面中的'push(pathOrLoc)'方法:https://github.com/ReactTraining/react-router/blob/master/docs/API.md
在iOS中,如果我有以下内容:
hashHistory.push({pathname:'/path1'});
hashHistory.push({pathname:'/path2'});
我将被导航到'/ path1'一瞬间,然后降落在'/ path2'。
我期望发生的是我被推到'/ path1'并且代码不会执行第二条路径。怎么会被处决?有没有办法阻止第二次发生?
一个例子是我有来自网址的回调..它打开移动应用程序并将用户推送到相应的页面('/ path1')并在我的代码中的回调下面我有正常的推送,如果是用户正常打开应用程序('/ path2')..但回调/路径1被/ path2覆盖。
在我的应用程序中通过各种回调有超过2种路径可能性,但是用户总是最后调用最后一次,即使我希望代码永远不会被执行。我真的不想抛出一堆新函数/变量/ if语句来避免调用这些推送。
无论如何都要禁用此行为?我希望有类似的东西:
hashHistory.push({pathname:'/path1'}, {dontGoAnyhereElsePlzStop});
hashHistory.push({pathname:'/path2'});
登陆/ path1而不接触/ path2。
答案 0 :(得分:1)
推送调用不会立即执行重定向,它的行为更像是状态更新,因此其后的代码将继续执行。
如果你想做一个或另一个尝试类似的事情:
if (some_condition) {
hashHistory.push({pathname:'/path1'});
} else {
hashHistory.push({pathname:'/path2'});
}