Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 标准expo字体脚本模板+;SafeAreaProvider/SafeAreaView正在渲染组件两次?_Typescript_React Native_Expo_Safeareaview - Fatal编程技术网

Typescript 标准expo字体脚本模板+;SafeAreaProvider/SafeAreaView正在渲染组件两次?

Typescript 标准expo字体脚本模板+;SafeAreaProvider/SafeAreaView正在渲染组件两次?,typescript,react-native,expo,safeareaview,Typescript,React Native,Expo,Safeareaview,我刚刚开始了一个带有标准expo类型脚本的新项目,希望从react native safe area上下文中使用SafeAreaProvider/SafeAreaView。当我这样做,并输入一个组件渲染的图像;它显示double(渲染两次) 我尝试了一个控制台日志,发现它被重新下载了3次,如何防止这种情况发生? * App.tsx 从“世博会状态栏”导入{StatusBar}; 从“React”导入React; 从“react native safe area context”导入{Saf

我刚刚开始了一个带有标准expo类型脚本的新项目,希望从react native safe area上下文中使用SafeAreaProvider/SafeAreaView。当我这样做,并输入一个组件渲染的图像;它显示double(渲染两次)

我尝试了一个控制台日志,发现它被重新下载了3次,如何防止这种情况发生?

*

App.tsx

从“世博会状态栏”导入{StatusBar};
从“React”导入React;
从“react native safe area context”导入{SafeAreaProvider,SafeAreaView};
从“/hooks/useCachedResources”导入useCachedResources;
从“/hooks/useColorScheme”导入useColorScheme;
从“/Navigation”导入导航;
从“/screens/HomeScreen/HomeScreen”导入主屏幕;
导出默认函数App(){
const isLoadingComplete=useCachedResources();
const colorScheme=useColorScheme();
如果(!isLoadingComplete){
返回null;
}否则{
返回(
);
}
}
HomeScreen.tsx

import*as React from“React”;
从“react native”导入{Image};
从“../../components/Themed”导入{文本,视图}”;
从“/styles”导入样式;
常量主屏幕=()=>{
返回(
);
};
导出默认主屏幕;

可能解释了一个重新渲染:。这里您还使用了一个导航器,它测量挂载上的布局,并可以解释另一个布局。尝试进一步缩小范围,仅在根位置渲染图像,等等,以了解是哪些组件导致了它
import { StatusBar } from "expo-status-bar";
import React from "react";
import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";

import useCachedResources from "./hooks/useCachedResources";
import useColorScheme from "./hooks/useColorScheme";
import Navigation from "./navigation";
import HomeScreen from "./screens/HomeScreen/HomeScreen";

export default function App() {
  const isLoadingComplete = useCachedResources();
  const colorScheme = useColorScheme();

  if (!isLoadingComplete) {
    return null;
  } else {
    return (
      <SafeAreaProvider>
        <SafeAreaView style={{ flex: 1, backgroundColor: "black" }}>
          <HomeScreen />
          <Navigation colorScheme={colorScheme} />
          <StatusBar />
        </SafeAreaView>
      </SafeAreaProvider>
    );
  }
}
import * as React from "react";
import { Image } from "react-native";

import { Text, View } from "../../components/Themed";
import styles from "./styles";

const HomeScreen = () => {
  return (
    <View style={styles.container}>
      <Image
        style={styles.image}
        source={{
          uri:
            "https://www.homewallmurals.co.uk/ekmps/shops/allwallpapers/images/captain-marvel-higher-further-faster-61x91-5cm-movie-posters-31607-1-p.jpg",
        }}
      ></Image>
    </View>
  );
};

export default HomeScreen;