在堆栈屏幕中反应本机更新整个导航器

时间:2021-05-12 21:46:57

标签: react-native react-navigation stack-navigator

我正在使用 React Navigation 在 React-Native 中创建登录页面。

Index.js 中,应用会检查用户是否登录。这与异步存储有关。 所以:

我们在 AsyncStorageLogged 项中有 @logged_in 项,在 States 中,然后这将通过一些功能:

If @logged_in == 1 ---> Logged Updates_to 1

If @logged_in == 0 ---> Logged Remains or Updates_to 0

在同一个文件中,我们有这个 Stack Navigator(第三行以后非常重要):

<NavigationContainer>
    <Stack.Navigator>

          {Logged ? (
            <Stack.Screen name="Home" component={Home} />
          ) : (
            <>
              <Stack.Screen name="Login" component={Login} />
              <Stack.Screen name="ConfirmCode" component={ConfirmCode} />
            </>
          )}


    </Stack.Navigator>
</NavigationContainer>

因此,当 Logged 状态设置为 0 时,LoginConfirmCode 屏幕将位于堆栈导航器中。如果 Logged 状态设置为 1Home 屏幕将在堆栈中(总而言之,登录屏幕中的用户输入他们的电话号码并在收到代码后将其放入ConfirmCode,他们将登录并必须重定向到主页屏幕)。

现在,我的主要问题是,当用户确认登录时,如何更新 Index 处的 Logged 状态。 (在 ConfirmCode 屏幕中执行某些操作后,如何安全地重新渲染 Index?)


注意:就像你现在一样,我不能简单地导航到主页屏幕,因为它不会出现在 Stack.Navigator 中,直到用户登录并登录< /strong>索引更新中的状态。

0 个答案:

没有答案