javascript - 将功能组件更改为类组件时,`npm init react-app` 导致 `'React' is not defined no-undef`
问题描述
我使用npm init react-app appname
了它在其他文件中创建App.js
. 在该文件中是一个函数组件:
function App() {
return (
<SomeJSX />
);
}
我将函数组件编辑为类组件,如下所示:
class App extends React.Component{
render() {
return (
<TheSameJSX />
);
}
}
现在,当我运行时npm start
,我收到一个错误:
Failed to compile
src/App.js
Line 4:19: 'React' is not defined no-undef
Search for the keywords to learn more about each error.
我想我需要在某个地方添加一些设置,这些设置将自动包含 React,而无需import
在每个文件的顶部显式地显示它。我该怎么做呢?为什么这个 npm 包默认不这样做?我对 javascript(以及 html 和 css)有所了解,并且读过一些关于 React 的内容,但我完全不知道 npm 或 webpack 是如何工作的。
提前致谢!
编辑:澄清一下,我知道如何用 javascript 导入东西。我可以轻松地添加import React from 'react';
到文件中并使其工作。但是,我很难相信import
向每个 javascript 文件添加语句是推荐的方法,而且我不明白为什么不设置此示例应用程序以避免必须这样做。我弄错了吗?我真的需要在同一个项目中一遍又一遍地手动导入相同的东西吗?我可以设置一个全局变量,React
以便我可以在任何地方使用它吗?
解决方案
在您的默认函数组件中,您没有扩展任何类,只是编写一个简单的函数
function App() {
return (
<SomeJSX />
);
}
在类组件中,您实际上是通过 React 默认导出对象提供的类来扩展类Component
,React.Component
因此您必须从包中导入它
//only use one of these
import * as React from "react";
import {Component} from "react"; // you can directly extend without writing `React.` with this import
import React from "react"
所以你的代码是
import React from "react";
class App extends React.Component{
render() {
return (
<TheSameJSX />
);
}
}
上述任何进口都应该优先于第一个和第二个进口。
推荐阅读
- python-3.x - 数据框熊猫拆分 str
- javascript - 性能:监听所有表单元素的变化,将所有动态属性与新数据同步
- sql - 提取最后两个括号之间的右字符串
- scala - 在 Scala 中的功能步骤之间传递状态
- sql - 我可以使用带条件的 json_array_length 吗?
- sql - 如何将结果行表与包含某些条件的表连接为 varchar 字段?
- python - Python,如何从命令行捕获附加参数
- android - 如何在android应用程序中通过弹出框更改分享的背景颜色
- azerothcore - unraid 6.2 中 Docker 中的艾泽拉斯核心?
- r - 重命名不包括特定列集的列