SetState调用后状态未更新?React点击修改文本失效求助
问题分析与修复方案
嘿,我一眼就瞅出你代码里的问题啦!这两个小错误导致状态没更新、文本不变化,控制台也打不出新状态:
错误1:把setState当成变量赋值了
你写的this.setState = ({teksti: "Mello"})是给setState属性重新赋值,而不是调用React的状态更新方法。正确的做法是调用this.setState()方法,把要更新的状态对象传进去。错误2:setState回调函数的语法不对
你想用回调函数打印更新后的状态,但现在的写法把回调和状态对象用逗号隔开,这不符合语法规范。回调函数应该作为setState的第二个参数,放在方法的括号里。
修正后的完整代码
class Komponentti extends React.Component{ constructor(props){ super(props) this.state = {teksti: "Hello"} this.handleClick = this.handleClick.bind(this); } handleClick(){ this.setState({teksti: "Mello"}, () => { console.log(this.state.teksti); }) } render(){ return( <h1 onClick={this.handleClick}>{this.state.teksti}</h1> ) } }
现在点击h1元素,文本会从Hello变成Mello,控制台也会正确打印出更新后的状态值啦~
内容的提问来源于stack exchange,提问作者sander
相关产品推荐
相关产品推荐

