React Navigation V2:navigation.push 和 navigation.navigate 的区别

新手上路,请多包涵

我是 React Native 的新手,目前正在学习 React Native Navigation Docs 。我想知道: navigation.push()navigation.navigate() 有什么区别?

我试着自己找出来,但他们似乎完成了完全相同的事情……

原文由 J. Hesters 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 925
2 个回答

如果您查看 push 的文档,则会解释它们的不同之处。

Push 操作在堆栈顶部添加一个路由并向前导航。这与导航的不同之处在于,如果组件已经安装在那里,导航将弹回堆栈中的较早位置。 Push 将始终添加在顶部,因此可以多次安装组件。

我们可以以 Instagram 为例;

考虑导航到用户的个人资料。然后您可以检查用户的关注者,然后您也可以导航到他们的个人资料。如果您只使用 navigate 操作执行相同的操作,当您从关注者列表屏幕单击用户的个人资料时,将导航到上一个个人资料,但如果您使用 push 它将推送一个堆栈的新屏幕并显示正确的配置文件。这样你就可以 goBack 到第一个屏幕。

原文由 bennygenel 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据 这里 的最后一篇博客文章:对于 v1:

navigate(routeName) and push(routeName) were very similar: every time you called navigate(routeName) it would push a new route to the stack.

对于 v2:

Now navigate(routeName) will first try to find an existing instance of the route and jump to that if it exists, otherwise it will push the route to the stack.

导航 > 转到页面实例(如果存在)或推送新实例

push > 推送一个新实例,即使一个已经存在

原文由 Poptocrack 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题