NodeJS 当我从一个屏幕导航到另一个屏幕时,如何避免视觉错误?- React Native Expo

643ylb08  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(113)

我在我的应用程序上创建了一个登录屏幕和一个创建帐户屏幕。我有一些按钮可以来回切换。两个屏幕单独使用时都很好。当我这样做时,经常会出现如下的视觉错误:
我的App.js代码:

const App = () => {

  return (
    <NavigationContainer theme={theme}>
      <Stack.Navigator screenOptions={{ headerShown: false}} initialRouteName="CreateAccountScreen">
        <Stack.Screen name ="CreateAccountScreen" component={CreateAccountScreen} />
        <Stack.Screen name ="SignInScreen" component={ SignInScreen } />
      </Stack.Navigator> 
     </NavigationContainer>
  );
}

来自每个屏幕按钮的代码(来回切换):

onSignUpButtonPressed = () => {
    navigation.navigate("SignInScreen")
}

onCreateAccountButtonPressed = () => {
    navigation.navigate("CreateAccountScreen")
}

Displays seem to overlay themselves in a bad way
我尝试了很多方法,在几个屏幕上都出现了这种情况...

xzlaal3s

xzlaal3s1#

initialRouteName的设置如我们所见,但在Stack.Screen上,您还为其给予了Component属性。
我根据导航的外观做了一个测试,没有发现您显示的视觉错误,所以我认为如果您删除component属性,并将component标记放在Stack.Screen中(如下所示),它可能会工作。

<Stack.Navigator
    initialRouteName='Home'
>
<Stack.Screen
    name="Home"
    options={{
       headerShown: false,
    }}
>
    {props => <Home {...props} username='Bella' />}
</Stack.Screen>

您的问题中也没有这样定义Stack的代码:
const Stack = createStackNavigator();

相关问题