如何清除或替换传递给根导航器的道具
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 导航器中的组件?