【问题标题】:Filtering intermediate screens in StackNavigator state在 StackNavigator 状态下过滤中间屏幕
【发布时间】:2018-03-21 14:56:15
【问题描述】:

我将 react-navigation 与 react-navigation-redux-helpers 一起使用。

假设我有一个具有这种状态的 stackNavigator:

{
  index: 2,
  routes: [route1, route2, route3]
}

在某些时候我需要过滤掉 route2:

{
  index: 1,
  routes: [route1, route3]
}

如果我使用 NavigationActions.reset 执行此操作,它将像我再次打开 route3 一样进行动画处理。

有没有什么方法可以在没有任何动画的情况下从 StackNavigator 状态过滤路由?

更多图解说明:

我有困难的结帐流程,其中一些屏幕取决于用户登录。对于结帐导航器,用户可以随时登录(因为身份验证可以显示在另一个模式 StackNavigator 中)。所以当我打开 route3 时我不能使用 NavigationActions.replace。

我也对相反的情况感兴趣:当我必须将 route2.1 推入状态时。

【问题讨论】:

    标签: react-navigation


    【解决方案1】:

    据我所知,v1 中的 react-navigation 仅允许在每个路由器的基础上设置动画,如 this 答案所示。

    基于sceneProps,您需要找出涵盖您的用例的条件并返回 null 以表示没有动画。从the sources来看,这个接口在v2中可能会有所改进。

    【讨论】:

    • 谢谢!那我试试 v2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2019-09-23
    • 2020-10-14
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    相关资源
    最近更新 更多