我试图使用按钮显示每次点击计数,但我遇到了一个问题,我的代码。当我运行代码时,它无法编译,但是当您检查页面时,您可以看到显示的时间。这是我的代码。
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 "引用类Profile的实例。关键字。这是必要的,因为任何赋值都需要引用count变量存储的显式路径,即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>
);
}
}