TSX 文件无法呈现导入的 React 组件
TSX file can't render imported React Component
当我将 Day 组件导入 Week 组件时(均为 .tsx 文件),出现以下错误:
未捕获错误:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:对象。
检查 Week
的渲染方法
Day.tsx :
import React from 'react';
export default function Day () {
return (
<div>
I am day
</div>
)
}
Week.tsx
import React from 'react';
import Day from './Day'
export default function Week () {
return (
<div>
I am Week
<Day />
</div>
)
}
如果我从周组件中删除日,我可以在屏幕上看到周组件。
如果我将 Day.tsx 文件重命名为 Day.jsx,问题就会得到解决。它只发生在打字稿上。
我也尝试过不同的导入约定。
有什么想法吗?
将此添加到您的 tsconfig.json
{
"compilerOptions": {
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"noFallthroughCasesInSwitch": true,
"jsx": "react-jsx"
},
"include": [
"src",
]
}
如果你也在使用 webpack,这将解决问题
module.exports = {
//Rest of your code
resolve: {
extensions: ['.ts', '.tsx'],
},
};
当我将 Day 组件导入 Week 组件时(均为 .tsx 文件),出现以下错误:
未捕获错误:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:对象。
检查 Week
Day.tsx :
import React from 'react';
export default function Day () {
return (
<div>
I am day
</div>
)
}
Week.tsx
import React from 'react';
import Day from './Day'
export default function Week () {
return (
<div>
I am Week
<Day />
</div>
)
}
如果我从周组件中删除日,我可以在屏幕上看到周组件。 如果我将 Day.tsx 文件重命名为 Day.jsx,问题就会得到解决。它只发生在打字稿上。 我也尝试过不同的导入约定。
有什么想法吗?
将此添加到您的 tsconfig.json
{
"compilerOptions": {
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"noFallthroughCasesInSwitch": true,
"jsx": "react-jsx"
},
"include": [
"src",
]
}
如果你也在使用 webpack,这将解决问题
module.exports = {
//Rest of your code
resolve: {
extensions: ['.ts', '.tsx'],
},
};