Reactjs 在React Native中,首选的身份验证模式是什么

Reactjs 在React Native中,首选的身份验证模式是什么,reactjs,react-native,react-redux,react-navigation,Reactjs,React Native,React Redux,React Navigation,我知道有几种方法可以解决这个问题,但我想知道是否有一种更可取或推荐的模式可以很好地适应更大的复杂应用程序? 我的登录过程包括3个屏幕或视图,当前和 我的环境由React Native、Redux、与Redux相关的React导航和Redux传奇组成 模式1: 在我的根组件中,我检查身份验证状态并返回登录组件或返回AppWithNavigationState组件。 这里的问题是,我必须在一个登录组件中为我的应用程序流模拟3个单独的屏幕,这对于Reacts体系结构来说很好,但在子组件中创建了大量混乱

我知道有几种方法可以解决这个问题,但我想知道是否有一种更可取或推荐的模式可以很好地适应更大的复杂应用程序?
我的登录过程包括3个屏幕或视图,当前和 我的环境由React Native、Redux、与Redux相关的React导航和Redux传奇组成

模式1:
在我的根组件中,我检查身份验证状态并返回登录组件或返回AppWithNavigationState组件。 这里的问题是,我必须在一个登录组件中为我的应用程序流模拟3个单独的屏幕,这对于Reacts体系结构来说很好,但在子组件中创建了大量混乱的条件逻辑

模式2: 我的根组件只返回我的AppWithNavigationState,如果用户未通过身份验证,我的startup saga会将应用重定向到登录屏幕。成功登录后,导航堆栈将重置为我的主屏幕。
这个想法的问题是,无论哪个屏幕是默认屏幕,您都会根据已验证状态重定向到不同的屏幕。我还没有找到一种在Navigator中动态设置应用程序加载时的默认屏幕的好方法。

为什么您不能根据saga登录成功后的身份验证状态导航到特定屏幕?@agent\u hunt我可以也可以。我指的是在stack navigator中动态设置initial screen属性,以便根据我的用户状态从正确的屏幕开始。ok。克服这个问题的一种方法是,如果适合您的用例,就使用闪屏作为初始屏幕。@agent\u hunt我确实为此使用闪屏。让这个场景工作起来我没有问题,我更感兴趣的是哪种模式是“反应”方式,或者哪种是推荐的方式,以及为什么。我目前的设计是使用模式2,但我的直觉告诉我,模式1是基于其自上而下架构的反应方式。我不确定是否存在“反应方式”。也许react router v4风格的路由在pattern1中会有所帮助。使用react导航或在移动用例中很难做到这一点。从redux传奇的角度来看,所有的副作用和复杂的编排都是在传奇中完成的,将组件中的逻辑保持在我个人喜欢的最小值。为什么在传奇成功登录后,你不能根据验证状态导航到特定屏幕?@agent\u hunt我可以也可以。我指的是在stack navigator中动态设置initial screen属性,以便根据我的用户状态从正确的屏幕开始。ok。克服这个问题的一种方法是,如果适合您的用例,就使用闪屏作为初始屏幕。@agent\u hunt我确实为此使用闪屏。让这个场景工作起来我没有问题,我更感兴趣的是哪种模式是“反应”方式,或者哪种是推荐的方式,以及为什么。我目前的设计是使用模式2,但我的直觉告诉我,模式1是基于其自上而下架构的反应方式。我不确定是否存在“反应方式”。也许react router v4风格的路由在pattern1中会有所帮助。使用react导航或在移动用例中很难做到这一点。从redux传奇的角度来看,所有的副作用和复杂的编排都是在传奇中完成的,将组件中的逻辑保持在我个人喜欢的最低限度。