如何在 React Native 中显示一次屏幕?

How to show a screen once in React Native?

当用户第一次打开应用程序时(如欢迎屏幕),我如何才能只向用户显示一次 firstScreen?我希望用户在下一个开口中看到 secondScreen。

App.js 画面:

import React from "react";
import "react-native-gesture-handler";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";

import firstScreen from "./src/screens/firstScreen.js";
import secondScreen from "./src/screens/secondScreen,js";

const Stack = createStackNavigator();

function App() {
  
  return (
    <NavigationContainer>
      <Stack.Navigator>
           <Stack.Screen
             name="First"
             component={firstScreen}
             options={{
               headerShown: false,
             }}
           />
          <Stack.Screen
            name="Second"
            component={secondScreen}
            options={{
              headerShown: false,
            }}
          />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default App;

您可以在本地存储中存储一个值。也许检查 useEffect 并为该检查设置状态。然后你可以有条件地渲染。希望能给你一个主意。

function App() {

  const [showOneTimeScreen, setShowOneTimeScreen] = useState(false);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    /* 
    Check from localstorage or from somewhere should you
    show "OneTimeScreen"
    and setShowOneTimeScreen to needed value , and setLoading to true
    */
  }, []);


  if (loading) {
    return <LoadingScreen />
  }

  return (
    <NavigationContainer>
      <Stack.Navigator>
        {showOneTimeScreen && (
          <Stack.Screen name="OneTimeScreen" component={OneTimeScreen} />
        )}
        <Stack.Screen
          name="Second"
          component={secondScreen}
          options={{
            headerShown: false,
          }}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}




function OneTimeScreen() {

  useEffect(() => {
    /* 
    Set to localstorage or somewhere you want
    that  "OneTimeScreen" has been shown
    */
  }, []);


  ....
}