尝试运行我的React应用时收到以下错误:
D:/React/my-components/src/App.tsx D:/React/my-components/src/App.tsx(23,4)中的TypeScript错误: JSX元素类型'Confirm'不是JSX元素的构造函数。 类型'Confirm'缺少类型'ElementClass'中的以下属性:context,setState,forceUpdate,props和另外2个。 TS2605
21 | </a>
22 | </header>
23 | <Confirm />
| ^
24 | </div>
25 | );
26 | }
这是我的确认组件代码
import * as React from "react";
class Confirm extends React.Component{
render(){
return (
<div className="confirm-wrapper confirm-visible">
<div className="confirm-container">
<div className="confirm-title-container">
<span>This is where our title should go</span>
</div>
<div className="confirm-content-container">
<p>This is where our content should go</p>
</div>
<div className="confirm-buttons-container">
<button className="confirm-cancel">Cancel</button>
<button className="confirm-ok">Okay</button>
</div>
</div>
</div>
);
}
}
export default Confirm;
和App.tsx代码
import React from 'react';
import logo from './logo.svg';
import './App.css';
import Confirm from './Confirm';
const App: React.FC = () => {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
<Confirm />
</div>
);
}
export default App;
这是我的package.json
{
"name": "my-components",
"version": "0.1.0",
"private": true,
"dependencies": {
"@types/jest": "24.0.18",
"@types/node": "12.7.8",
"@types/react": "16.9.4",
"@types/react-dom": "16.9.1",
"react-scripts": "3.1.2",
"typescript": "3.6.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"react": "^16.10.1",
"react-dom": "^16.10.1",
"tslint": "^5.20.0",
"tslint-config-prettier": "^1.18.0",
"tslint-react": "^4.1.0"
}
}
答案 0 :(得分:2)
谢谢,我通过运行以下命令解决了该错误
纱线升级@ types / react @ latest
答案 1 :(得分:0)
我有一个名为 Component.tsx
(驼峰式)的组件和一个名为 component.ts
(小写)的帮助程序,这似乎使它们变得混乱。我也在同一个文件中导入它们,所以我只是重命名了组件一。