“状态”未定义 no-undef

时间:2021-02-24 06:48:46

标签: javascript reactjs jsx

我使用教程来学习 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!

4 个答案:

答案 0 :(得分:1)

这个问题与 react 本身无关,但我相信是使用 create-react-app 创建的项目。正在进行的问题在评论中进行了讨论,并且通过简单地重新使用命令本身来创建一个新项目,它已经对某些人有效,但仍然等待维护者的评论。所以这不是你做错了什么。冷静。

我从昨天开始就一直在跟踪这个,甚至在推特上也发布了相同的内容。一些依赖可能已经搞砸了。可能是 eslintbabel 插件之一。

问题链接 - https://github.com/facebook/create-react-app/issues/10598

答案 1 :(得分:1)

我遇到了同样的问题。我使用了错误的版本。下面的文档为我提供了为新版本创建新 React 应用程序的说明。现在我解决了这个问题。

https://create-react-app.dev/docs/getting-started/

答案 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