React更新一个将两个状态相加的var



我需要的是在变量或状态中打印并保存globalValue的值,这两个值的总和"数字";。

这个代码的问题是,中打印的不是真正的值,而是倒数第二个值。例如,如果我打开文本字段1和1,它会显示0,但如果稍后我将它们更改为3和3,它会因为1加1而显示2。我不能在de"中使用setState;componentDidUpdate";出于这个原因,我使用了var,但我相信应该有更好的方法。

谢谢你的关注,我希望我能了解你的答案!

var globalValue=0
class ExampleComponent extends Component{
constructor(){
super();
this.state=({
number1:0,
number1:0,
})
}
componentDidUpdate(){
globalValue=this.state.valu1+this.state.value2,
}
updateNumber1(evt){
this.setState({
value1: evt.target.value,
});  
}
updateNumber2(evt){
this.setState({
value2: evt.target.value,
});  
}
<Textfield value={this.state.number1} onChange={evt => this.updateNumber1(evt)}/>
<Textfield value={this.state.number2} onChange={evt => this.updateNumber2(evt)}/>
<h2>Global value is:{globalValue}</h2>

您的代码丢失了很多。一个完整的工作演示会很有帮助。但是最后3行(我认为是render方法(应该是一个纯函数,它只访问this.pops和this.state作为输入。不是globalValue。计算也应该在那里,而不是在componentDidUpdate中。此方法适用于其他副作用。

所以只要使用<h2>Global value is:{this.state.number1 + this.state.number2}</h2>

最新更新