我使用教程来学习 React,但很快就卡住了。 在教程中,他们使用以下代码:
import React, { Component } from "react";
class Counter extends Component {
state = {
count: 0,
};
render() {
return (
<React.Fragment>
<span>{this.state.count}</span>
<button>Increment</button>
</React.Fragment>
);
}
}
export default Counter;
一切都很好。
但就我而言,我收到此错误:
<块引用>src\components\counter.jsx Line 4:3: ‘state’ is not defined no-undef 搜索关键字以详细了解每个错误。
尝试了一切之后,我认为这是因为 React 版本(他们使用旧版本)。
所以我的问题是如何修复这个错误,以及阻止我的代码工作的版本之间实际发生了什么变化。 Tnx!
答案 0 :(得分:1)
这个问题与 react
本身无关,但我相信是使用 create-react-app
创建的项目。正在进行的问题在评论中进行了讨论,并且通过简单地重新使用命令本身来创建一个新项目,它已经对某些人有效,但仍然等待维护者的评论。所以这不是你做错了什么。冷静。
我从昨天开始就一直在跟踪这个,甚至在推特上也发布了相同的内容。一些依赖可能已经搞砸了。可能是 eslint
或 babel
插件之一。
问题链接 - https://github.com/facebook/create-react-app/issues/10598
答案 1 :(得分:1)
我遇到了同样的问题。我使用了错误的版本。下面的文档为我提供了为新版本创建新 React 应用程序的说明。现在我解决了这个问题。
答案 2 :(得分:0)
将状态放入构造函数:
constructor(props) {
super(props);
this.state = {
count: 0,
}
答案 3 :(得分:0)
由于构造函数未初始化,您在 React 中分配关键字的 state
这就是它作为错误出现的原因。
通过添加构造函数来修复您的代码 -
constructor(props) {
super(props);
this.state = { count: 0 };
}
有关更多信息,请参阅 - Counstructor in React Class Component