回答我自己的问题,因为我已经对那里的不同选项进行了大量研究,并亲自尝试了所有主要选项。
NEW EDIT: As of today (12/2021) I suggest using React Navigation v6. It's the community solution being most pushed by Facebook. The V5 rewrite was a complete game changer and is far superior to previous versions, V6 builds on top of it. Easy to get setup and implementing easy/complicated stacks is a breeze most of the time.
If that's not doing it for you another alternative is react-native-navigation by wix (not compatible with expo unfortunately).
Keep an eye on native-nagivation by airbnb. They've been in beta for a while and not much has been pushed to the project recently so I'd still suggest React Navigation for prod. (edit: avoid - this project has been dropped.)
original post below:
TLDR:截至今天(2017 年 13 月 1 日),我仍然强烈建议React Native Router Flux。使用ex-navigation,指数是一个很好的选择。
我一直在为我的项目使用 RNRF,到目前为止它非常完美。精湛的导航栏和堆栈定制(这对我来说是一件大事)并且易于与其他软件包集成。
更长的版本:(编辑:现在过时了)
导航员:要避免。不详细说明原因,Facebook 已经放弃它并且不再维护它的事实对我来说是选择另一个导航的足够大的理由。
NavigatorIOS:顾名思义,仅在 IOS 上可用,如果您要使用跨平台应用程序,这不是很好。在堆叠方面有几个不同之处,对我来说,这比 FB 所追求的整个“学习一次,随处写”的东西都要好。话虽如此,如果您的 iOS 应用程序的导航不是太复杂,并且您不需要太多的导航栏自定义,这是一个相当不错的选择,它利用了本机 UIKit 导航,因此将自动呈现带有后退按钮的导航栏和标题。
NavigationExperimental:不要像我一样被它的名字吓到。NavigationExperimental 对导航堆栈有很多控制,并允许更轻松的状态管理。不包括 3rd 方库,这是转到导航选项。
Ex-Navigation:我将引用 Facebook 的 Eric Vicenti,他是 React Native 团队的成员:
如果您对更命令式的方法感兴趣,您可以在其中进行方法调用,以类似于以前的 Navigator 的方式在整个应用程序中导航,那么我肯定会推荐 ExNavigation。我们正在与 Exponent 进行相对密切的合作,因此这些事情不会以危险的方式出现分歧。
React Router Native:文档说明了一切。我只能说,如果你习惯了 React Router,这可能适合你。
密切关注:WIX 的 React Native Navigation。看起来很不错,但考虑到它有点落后于最新版本的 react native(在写这个答案时),我还没有尝试过。
有趣的 RN Nav 内容如下:
React Native — 我应该使用哪个 Navigator?
第一眼:React Native Navigator Experimental Part 1