下面是_app.tsx的外观:
function MyApp({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
我在构建项目时遇到此错误:
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'.
以下是react版本:
"react": "17.0.2",
"react-dom": "17.0.2",
"@types/react": "17.0.26",
我试图切换到18版本,它的工作,但,我得到了这个错误:第一个月
3条答案
按热度按时间jqjz2hbq1#
将以下代码添加到
package.json
文件中然后重新安装软件包
ckx4rj1h2#
我认为这是因为你没有在你的项目中设置正确的typescript。我认为,目前,当你安装next.js,你应该有选择
typescript
的选项。如果没有在tsconfig.json中,你应该在编译器选项中有
"jsx": "preserve"
。它允许我们在项目中使用.tsx文件。tsconfig.json的一个例子jsx
,我们必须用()
Package 组件。但是在您的组件中,您有尽管我试着输入
()
,vscode还是忽略了它。所以试试arrow函数:xxls0lw83#
将devDependencies中的React类型更新为18(如果您已经使用17.x):