'state' 未定义 no-undef

IT技术 javascript reactjs jsx
2021-05-20 20:44:14

我使用教程来学习 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 版本(他们使用旧版本)。

所以我的问题是如何修复这个错误,以及阻止我的代码工作的版本之间实际发生了什么变化。天啦!

4个回答

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

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

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

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

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

将状态放入构造函数:

  constructor(props) {
    super(props);
    this.state = {
       count: 0,
  
  }

由于构造函数未初始化,因此state您在 React 中分配了一个关键字,这就是它作为错误出现的原因。

通过添加构造函数来修复这样的代码 -

constructor(props) {
   super(props);
   this.state = { count: 0 };
}

有关更多信息,请参阅 - React 类组件中的 Counstructor