如何清除或替换传递给根导航器的道具

Posted

技术标签:

【中文标题】如何清除或替换传递给根导航器的道具【英文标题】:How to clear or replace props which passed to root navigator 【发布时间】:2017-08-04 06:44:31 【问题描述】:

在我的场景中,我想通过导航器将“令牌”从登录视图传递到主页视图,它可以工作。

不幸的是,当我退出登录并导航到登录视图时,无法清除或替换曾经传递给根导航器的参数。我尝试过 resetTo,但它不起作用。

所以如果我切换用户,令牌将不会在根导航器中更改。 当然,如果我使用推送或初始化一个新的导航器,它会改变“令牌”。但我不想那样做。因为,首先,我不确定我是否初始化了一个导航器,旧的是否被破坏了,如果没有,它会浪费内存,在我看来。第二,我不想做额外的无用工作(如果参数可以在根导航器中更改,孩子可以从中检索参数而无需再次通过)

所以任何人都可以解决它?提前谢谢

【问题讨论】:

【参考方案1】:

自己解决 不是直接的,而是使用导航器的内置解决方案。 在 initialRoute 中,我将令牌传递给它,并在 renderScene 中为指定组件获取了 route.token。 从索引页面注销到登录页面后,我将令牌传递给push方法,然后更改了Navigator标签中的令牌,当然它被传递到索引页面。 所以我的新值传递成功了,希望对大家有所帮助~

【讨论】:

以上是关于如何清除或替换传递给根导航器的道具的主要内容,如果未能解决你的问题,请参考以下文章

如何将道具传递给 React Navigation 导航器中的组件?

如何将导航道具从父组件传递到标题?

反应导航:如何在打字稿中使用 NavigationStackScreenComponent 类型传递 redux 道具

将“导航”和“道具”传递给子组件

不使用导航器的 React-Native 传递道具?

使用编程导航 Vue.js 传递道具