在React Native中构建应用程序后出现空白屏幕

hof1towb  于 2022-12-14  发布在  React
关注(0)|答案(2)|浏览(246)

安装和自定义我的基本React导航设置后,建立应用程序后出现一个空白屏幕,控制台中没有错误。
我已将{{flex:1}}添加到SafeAreaView,我尝试卸载、删除节点模块、清理gradle,但没有任何效果。
导航. js文件

import *as React from "react";
import IndexScreen from "./Screens/Index";
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { NavigationContainer } from '@react-navigation/native';
import { SafeAreaView } from "react-native-safe-area-context";
const Stack = createNativeStackNavigator();

const Navigation = () => {
    <SafeAreaView style={{flex:1}}>
        <NavigationContainer>
            <Stack.Navigator initialRouteName="Index">
                <Stack.Screen name="Index" component={IndexScreen} />
            </Stack.Navigator>
        </NavigationContainer>
    </SafeAreaView>
    
}
export default Navigation;

App.js文件

import React from 'react';
import Navigation from './src/Navigation';

const App = () =>{
  return (
      <Navigation />
  )}

export default App;
w46czmvw

w46czmvw1#

在导航中,您实际上并不返回任何内容。它需要如下所示:

const Navigation = () => (<SafeAreaView style={{flex:1}}>
        <NavigationContainer>
            <Stack.Navigator initialRouteName="Index">
                <Stack.Screen name="Index" component={IndexScreen} />
            </Stack.Navigator>
        </NavigationContainer>
    </SafeAreaView>)
vsmadaxz

vsmadaxz2#

首先,除非你先用SafeAreaProvider Package 你的应用程序,否则你不要使用SafeAreaView。其次,你不需要为导航做这件事,因为导航已经内置了它。
首先将import { SafeAreaView } from "react-native-safe-area-context";替换为import { SafeAreaProvider } from "react-native-safe-area-context";
把你用SafeAreaView的地方改成SafeAreaProvider,把你不需要的地方去掉。
SafeAreaView依赖于SafeAreaProvider上下文才能完成工作。您不能使用上下文环绕应用的视图。

相关问题