javascript - 'Component' nemožno použiť ako JSX komponent. Nextjs
Takto vyzerá _app.tsx:
function MyApp({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
a pri zostavovaní projektu sa mi zobrazuje táto chyba:
Type error: 'Component' cannot be used as a JSX component.
Its element type 'ReactElement<any, any> | Component<{}, any, any> | null' is not a valid JSX element.
Type 'Component<{}, any, any>' is not assignable to type 'Element | ElementClass | null'.
Type 'Component<{}, any, any>' is not assignable to type 'ElementClass'.
The types returned by 'render()' are incompatible between these types.
Type 'React.ReactNode' is not assignable to type 'import("/Users/user/node_modules/@types/react/index").ReactNode'.
Type '{}' is not assignable to type 'ReactNode'.
Toto sú verzie Reactu:
"react": "17.0.2",
"react-dom": "17.0.2",
"@types/react": "17.0.26",
Skúsil som prepnúť na verziu 18, fungovalo to, ale zobrazila sa mi táto chyba: Hydratácia zlyhala, pretože počiatočné používateľské rozhranie nezodpovedá tomu, čo bolo vykreslené na serveri
Odpoveď č. 1
Pridajte nasledujúci kód do súboru package.json
"resolutions": {
"@types/react": "17.0.2",
"@types/react-dom": "17.0.2"
}
Potom znovu nainštalujte balíčky
yarn
- ak používate npm
npm i
Odpoveď č. 2
Aktualizujte typy React na 18 v devDependencies (ak už používate 17.x):
"@types/react": "^18",
"@types/react-dom": "^18"
