[英]SetState won't update with callback?
我很难理解为什么文本不会在浏览器中更改或为什么甚至不会console.log
新状态。 我只是想通过单击更改文本。
class Komponentti extends React.Component{
constructor(props){
super(props)
this.state = {teksti: "Hello"}
this.handleClick = this.handleClick.bind(this);
}
handleClick(){
this.setState = ({teksti: "Mello"}), function(){
console.log(this.state.teksti);
}
}
render(){
return(
<h1 onClick={this.handleClick}>{this.state.teksti}</h1>
)
}
}
你说错了。 应该:
handleClick() {
this.setState({teksti: "Mello"}), () => {
console.log(this.state.teksti);
}
}
可能是您对es6粗箭头功能感到困惑。
在ES6中,我们可以使用粗箭头符号声明函数,以将词汇表this
传递给您声明的函数。
例如:
const example = () => {
// Something interesting
}
但是我们将该函数称为example()
。
但是setState()
是一个已经在React中声明的异步函数。 我们可以通过以下方式使用它来更新状态。
handleClick(){
this.setState({teksti: "Mello"}), () => {
console.log(this.state.teksti);
}
}
以下是设置状态的方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.