Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是重置导航堆栈更好,还是只是防止返回到上一个屏幕?_Javascript_Android_Ios_React Native_Navigation - Fatal编程技术网

Javascript 是重置导航堆栈更好,还是只是防止返回到上一个屏幕?

Javascript 是重置导航堆栈更好,还是只是防止返回到上一个屏幕?,javascript,android,ios,react-native,navigation,Javascript,Android,Ios,React Native,Navigation,我目前正在用react native开发一个移动应用程序。对于某些场景,我对导航堆栈感到有点困惑,例如: 用户成功登录并重定向到主屏幕 用户通过购物流程选择产品,进入购物车,结帐,直到完成交易,然后再次返回主屏幕 哪一个更好?重置导航堆栈,或者只是设计屏幕以防止返回(Android上的后退按钮,或者iOS中的平移手势) 我应该使用什么导航库?是一个推荐的库,特别是对于初学者 对于第一种情况,使用React Navigation,您只需要像这样使用它的方法(params是一个可选参数): 对于第

我目前正在用react native开发一个移动应用程序。对于某些场景,我对导航堆栈感到有点困惑,例如:

  • 用户成功登录并重定向到主屏幕
  • 用户通过购物流程选择产品,进入购物车,结帐,直到完成交易,然后再次返回主屏幕 哪一个更好?重置导航堆栈,或者只是设计屏幕以防止返回(Android上的后退按钮,或者iOS中的平移手势)

    我应该使用什么导航库?

    是一个推荐的库,特别是对于初学者

  • 对于第一种情况,使用React Navigation,您只需要像这样使用它的方法(params是一个可选参数):

  • 对于第二种情况,您需要使用操作,然后使用如下方法分派它(params是可选的,在这种情况下,我们只传递当前路由的现有params,我们将从中重定向):

  • 这会将您重定向到“主页”,作为堆栈中唯一没有后退按钮的页面

    如果您需要导航到“主页”顶部的另一个页面,只需向
    操作
    数组添加另一个相同的值,如下所示(参数仍然是可选的)

    请记住,
    index
    prop表示要向用户显示的
    action
    数组中某个路由的索引,这意味着如果
    action
    数组中有2个项目和
    index:1
    ,用户将重定向到第一个路由之上的第二个路由在顶部表示后退按钮将指向它


    您可以向
    action
    数组中添加任意数量的路由,只要您想将它们堆叠在彼此之上即可

    谢谢Eduard的精彩解释!react navigation reset是否提供动画?@KevinDave不客气,基本的本地动画是
    this.props.navigation.navigate('home', params: { some: 'data' }); // ;
    
    import { NavigationActions } from 'react-navigation'
    
    const resetAction = NavigationActions.reset({
      index: 0,
      actions: [
        NavigationActions.navigate({ routeName: 'Home', params: this.props.navigation.state.params })
      ]
    })
    this.props.navigation.dispatch(resetAction)
    
    import { NavigationActions } from 'react-navigation'
    
        const resetAction = NavigationActions.reset({
          index: 1,
          actions: [
            NavigationActions.navigate({ routeName: 'Home', params: this.props.navigation.state.params }),
            NavigationActions.navigate({ routeName: 'AnotherPage', params: this.props.navigation.state.params })
          ]
        })
        this.props.navigation.dispatch(resetAction)