如何卸载在堆栈导航器(反应导航2.X)预先安装的部件?

问题描述 投票:0回答:1

This is a simplified flow of my app:-

  1. 登录
  2. 主页(具有选项以彩色图或创建图)
  3. colorInDiagram(图的用户颜色份)
  4. 付款
  5. 主页(返回首页)

现在,在这之后,如果用户决定再次颜色的图,他/她会选择在主页上的特定选项,该流程将继续照常进行。这是因为付款后,用户将返回到主页(这已经加载),和所有其他屏幕将重置。随着应用的完整的循环来了。 ComponentWillUnmount被称为colorInDiagram。

What I am trying to handle:-

如果用户关闭应用程序,而在步骤3(着色图),在重新打开该应用程序,我已编码它从其中应用程序是离开的回收。但是,当用户完成着色并付款后,他/她没有返回主页从colorInDiagram组件直接启动应用程序。该网页加载的第一次。

所以现在,当用户的联系,再次从网页颜色的图,它加载了colorInDiagram,因为它是离开的用户继续进行付款。 (它只是推动部件,因为它在堆栈中存在当前)。 ComponentWillUnmount是不是在colorInDiagram调用。

预期的行为: - 它应该是没有填充颜色的空白图,如果它是一个新的安装和部件的不只是重新渲染,因为它是离开的最后一次使用的时候。

*可能的解决方法: - *我觉得我必须手动卸载colorInDiagram组件。

问题: - 我怎么手动卸载反应机组件。

另外,如果你们有什么其他的见解和问题估计或解决方案,请不要共享!

reactjs react-native react-native-navigation
1个回答
4
投票

只是,这样它可以被接受为这里的答案是我在评论区建议的解决方案:

您可以使用StackAction.reset方法:https://reactnavigation.org/docs/en/stack-actions.html#reset重置您的导航堆栈在您的屏幕渲染colorInDiagram是不是在堆了这样卸载组件

从文档:

复位动作擦拭整个导航状态,并与几个动作的结果替换它。

import { StackActions, NavigationActions } from 'react-navigation';

const resetAction = StackActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'Profile' })],
});
this.props.navigation.dispatch(resetAction);
© www.soinside.com 2019 - 2024. All rights reserved.