加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何让 StackNaivgator 实现越级回跳

发布时间:2020-12-15 07:16:15 所属栏目:百科 来源:网络整理
导读:所谓越级回跳,就是 popN 的功能 为什么需要越级回跳?因为我的 APP 透析记词需要实现文件浏览,而越级回跳是一个很基础的文件导航功能 如何用 StackNavigator 实现这个功能?重任落到了 goBack 函数和路径的 key 属性上面 key 属性在 this.props.navigation

所谓越级回跳,就是 popN 的功能

为什么需要越级回跳?因为我的 APP 透析记词需要实现文件浏览,而越级回跳是一个很基础的文件导航功能

如何用 StackNavigator 实现这个功能?重任落到了 goBack 函数和路径的 key 属性上面

key 属性在this.props.navigation.state这个对象(object)中,是由系统自动生成的一个唯一标识

key 可以作为 goBack 函数的参数,假设程序的导航路径是 A -> B -> C -> D ,在 D 路径上使用 goBack(keyOfB),将实现 D 到 A 的跳转(是的,是跳回到 A,而不是 B)

问题是如何在 D 路径中获得 A(或者是 B)的 key,目前的实现方案是当 navigate 到下一个路径时,需要把现在路径的 key 以及之前路径传下来的 keys 一起作为参数 keys 传给下一个路径,

举例从 B 导航到 C ,navigate 的写法

let { navigate,state } = this.props.navigation
  // 导航到 C
  // state.params.keys 是 array,包含之前路径的 key
  navigate('DirViewOfC',{keys: state.params.keys.concat(state.key)})

在 C 路径,就可以通过this.props.navigation.state.params.keys获得之前路径的 key。

详细的代码实现可以查看透析记词的源码
React Navigation 有关 Navigation Prop 的资料

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读