유형 스크립트 오류 JSX 요소 유형 '보기'가 JSX 요소에 대한 생성자 함수가 아닙니다
유형 스크립트 오류 JSX 요소 유형 '보기'가 JSX 요소에 대한 생성자 함수가 아닙니다
프로그램 자체는 정상적으로 실행되지만, Typescript는 내 구성 요소에 대한 내 반환 기능에 빨간색으로 많은 항목을 밑줄로 표시하고 있다. 구체적으로 내 수입에서 나오는 모든 것.
, 등과 같은 것들은 이러한 "오류"를 던지고 있다. 나는 앱이 전혀 문제 없이 실행되기 때문에 인용문의 오류를 말한다. 내 IDE(VS 코드) 내의 타이프스크립트가 유일하게 불만이다. 내가 (오른쪽 하단 상태 표시줄 선택기를 통해) 자바스크립트 리액트 또는 타입스크립트 리액트를 선택하면 이러한 오류가 발생한다. 다음은 예입니다:
여기 내 소포의 중요한 부분들이 있다.json
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@react-navigation/native": "^5.7.6",
"@react-navigation/stack": "^5.9.3",
"expo": "~39.0.2",
"expo-status-bar": "~1.0.2",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz",
"react-native-screens": "~2.10.1",
"react-native-web": "~0.13.12",
"react-native-gesture-handler": "~1.7.0",
"react-native-reanimated": "~1.13.0",
"react-native-safe-area-context": "3.1.4",
"@react-native-community/masked-view": "0.1.10"
},
"devDependencies": {
"react-native-web": "~0.13.7",
"@types/react": "*",
"@types/react-dom": "*",
"@types/react-native": "*",
"typescript": "~3.9.5"
},
그리고 다음은 이러한 오류를 처리하는 파일의 모양입니다:
import { StatusBar } from "expo-status-bar";
import React, { useState } from "react";
import { StyleSheet, Text, View, TextInput, Button } from "react-native";
const SummaryScreen = ({ navigation }) => {
const accountDetailsPage = () => {
navigation.navigate("Account Details");
};
const contactDetailsPage = () => {
navigation.navigate("Contact Details");
};
return (
<View style={styles.container}>
<Text>HERE IS A BUNCH OF TEXT</Text>
<Button title="Account Details" onPress={accountDetailsPage} />
<Button title="Contact Details" onPress={contactDetailsPage} />
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
flexDirection: "column",
alignItems: "center",
justifyContent: "center",
},
});
export default SummaryScreen;
다음과 같은 구성 요소에서 이러한 오류가 발생하지 않도록 주의해야 합니다
여기 내 tsconfig도 있다:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"jsx": "react-native",
"lib": ["dom", "esnext"],
"moduleResolution": "node",
"noEmit": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"strict": true
}
}
다소 관련이 있는데, VS 코드의 어떤 것이 모듈을 찾을 수 없다고 불평하고 있지만 실행 시에도 오류 없이 잘 작동한다
문제는 VS 코드가 잘못된 오래된 버전의 타입스크립트를 사용하고 있다는 것이었다. 나는 그것이 어떻게 그렇게 설정되었는지, 또는 어떻게 그것이 여전히 완전한 출시가 끝난 버전을 가지고 있는지 확신할 수 없다. 간단한 수정이지만 진단이 거의 불가능합니다. 내가 고친 곳은 여기야:
보시다시피 VS 코드 자체에 버전 2.7.2를 설치하고 선택했습니다. 나는 지금 3.9.7을 사용했고 그 모든 오류들이 사라졌다.
리액트 네이티브에서 타이프스크립트를 사용하는 경우 디버그하기가 정말 힘들다. 당신의 vscode 하단에는 타이프스크립트가 아니라고 쓰여 있어야 한다. 를 누르고 Typescript Jsx를 선택합니다.