expo init 중 "Component cannot be used asa JSX component"오류 발생
1614 단어 React NativenpmyarnExpotech
TL;DR
새로운 expoinit에서 react-native 프로그램을 제작하고 싶습니다. "Component cannot be used asa JSX component"가 나타난 사람들을 대상으로 하는 응급 처리 보도입니다. 결론적으로 react-native 프로그램 라이브러리는react18시스템의 포장을 참조하는 이유입니다.
문제 및 해결 방법
당장tabs(TypeScript)의template를 선택하여 expoinit를 시도하면
~/navigation/index.tsx
다음과 같은 오류가 발생합니다.코드 오류
이 코드의 오류 문
다른 사용 expo-ins도 같은 JSX 구성 요소로 사용할 수 없습니다!!야단맞았다.
dependencies에react17계의 포장이 있든 없든react-native는react18계의 포장을 읽고 있기 때문이다.
yarn.lock 파일에서react18 시스템을 읽었습니다
이 문제를 해결하기 위해 패키지.json에서 Resolutions를 사용하여react-native 참조의 포장을 결정합니다. 구체적으로는 다음과 같습니다.
상황
"resolutions":{
"@types/react": "17.0.39"
},
npm의 경우
"overrides":{
"@types/react": "$@types/react"
},
이렇게 하면 괜찮아져요.react-nativer도react17계의 포장을 참고할 거예요.끝말
이번에 쓴 수법은 도대체 응급처리라고 할 수 있습니다. Expo가 진정react18에 대응하는 상황에서 Resolutions를 사용하지 말고 일반적인 상황에 따라 포장하여 운용하십시오.
또한, expo sdk45의 베타 버전은 4 일 전(2022/05/02 현재)에 발매되었는데, 아마 거기는react18의 대응일 것입니다. 끝까지 긴 글을 읽어 주셔서 감사합니다. 저를 도와주셨으면 좋겠습니다. thank you!
Reference
이 문제에 관하여(expo init 중 "Component cannot be used asa JSX component"오류 발생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tabigaeru/articles/bfade319dab9a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)