由于导航重置,ComponentDidMount 调用两次

ComponentDidMount call twice due to navigation reset

我是 react-native 的新手。我在我的应用程序中添加了一个启动画面,这是我的应用程序的初始路径,我使用 setTimeout 在 3 秒后调用一个函数,我在其中导航到我的登录页面。为此,我正在使用反应导航。当用户打开我的应用程序时,他会进入初始屏幕,并在 3 秒后导航到登录页面。它工作正常,但是当 android 用户按下后退按钮时,它会返回到初始屏幕。出于这个原因,我将启动画面的 componentDidMount 函数中的导航重置为

   const resetAction = NavigationActions.reset({
              index: 0,
              actions: [
                NavigationActions.navigate({ routeName: 'Login'}),
              ],
            });
            that.props.navigation.dispatch(resetAction);  

但是我的登录页面呈现了两次。但是如果我只使用这个

导航到登录页面
this.props.navigation.navigate('Login')  

它工作正常。请帮我解决这个问题。

这个问题是由于我的登录组件引起的。在我的登录组件中,我在我的登录 header 使用的 componentWillMount 中设置路由器参数值。

 this.props.navigation.setParams({ isLoading: false });

因此我的启动组件再次调用并返回到登录页面。因此登录组件呈现两次。