第 17:20 行:'count' 未定义 no-undef

Line 17:20: 'count' is not defined no-undef

我正在尝试使用按钮显示每次点击的次数,但我 运行 我的代码出了问题。当我 运行 我的代码时,它编译失败,但是当你检查页面时,你可以看到正在显示的时间。这是我的代码。

import React from 'react'
export default class Profile extends React.Component{
    constructor(){
        super();
        this.state={
            name:'Abdur Rehman',
            email: 'abdur@gmail.com',
            count: 0,
        }
    }
    test(){
        this.setState({
            name: 'Jamal',
            email: 'jamal123@gmail.com',
            count: count+1
            }
        )
    }
    render(){
        return(
            <div>
                <h1>hello {this.state.name}</h1>
                <h1>Email: {this.state.email}</h1>
                <h1>Count: {this.state.count}</h1>
                <button onClick={()=>{this.test()}}>Update Name</button>
            </div>
        );
    }
}

我不确定为什么它会编译失败,但我可以在您的测试方法中发现逻辑错误。

count: count+1

应该是:

count: this.state.count+1

或更好:

count: this.state.count++

这是因为您需要记住使用“this”关键字引用 class 配置文件的实例。这是必要的,因为任何赋值都需要引用存储计数变量的显式路径,即 this.state.count.

看看这是否对您有帮助:)

导入以前的状态,也不要在 constructor 函数之外改变 this.state 变量,在测试函数中使用 this.setState,这也会重新渲染组件

import React from 'react'
export default class Profile extends React.Component{
    constructor(){
        super();
        this.state={
            name:'Abdur Rehman',
            email: 'abdur@gmail.com',
            count: 0,
        }
    }
    test(){
        this.setState({
            ...this.state,
            name: 'Jamal',
            email: 'jamal123@gmail.com',
            count: this.state.count + 1
            }
        )
    }
    render(){
        return(
            <div>
                <h1>hello {this.state.name}</h1>
                <h1>Email: {this.state.email}</h1>
                <h1>Count: {this.state.count}</h1>
                <button onClick={()=>{this.test()}}>Update Name</button>
            </div>
        );
    }
}