我使用CLI命令create-react-app client --typescript
用TypeScript初始化了一个React项目。然后,我运行了npm start
,但是收到了以下编译错误:
./src/App.js
Line 26:13: 'React' must be in scope when using JSX react/react-in-jsx-scope
除了删除不必要的徽标文件外,我什至没有修改create-react-app
提供的样板项目,而我以前使用TypeScript完成的React应用程序也可以编译。以下是我的App.tsx
和index.tsx
文件:(请注意,App.tsx
中的徽标已删除,但我没有触摸index.tsx
)
index.tsx:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers:
serviceWorker.unregister();
App.tsx:
import React from 'react';
import './App.css';
function App() {
return (
<div className="App">
Lorem
</div>
);
}
export default App;
React
和ReactDOM
是导入的,那么导致此错误的原因是什么?
编辑:
我发现运行npm start
的{{1}}正在将我的react-scripts start
文件编译成.tsx
文件,这可能导致了此问题。是什么原因导致了上述行为?
答案 0 :(得分:0)
尝试
const RootApp:React.FC = () => {
return (
<React.StrictMode>
<App />
</React.StrictMode>
);
}
render(<RootApp />, document.getElementById("root"));