我试着用反应做一个简单的计数器,我发现sess_destroy()
不起作用。我想知道为什么。
这有效
++
但这不起作用
..
addCount() {
this.setState({count:this.state.count+1})
}
..
你可以在这里试试 https://jsfiddle.net/Lwvbe2o2
答案 0 :(得分:2)
因为x++
表达式首先返回值x
然后它递增它,而++x
首先递增它,然后返回该递增值。
仅出于实验目的,您可以使用 preincrement 来验证这一点
// Don't do this, it's just to explain why it works.
addCount () {
this.setState({count: ++this.state.count})
}
然后它会做你想要的,但它不是愚蠢的,因为它确实直接变异this.state.count
。
在ReactJS中你不想直接改变this.state.count
,所以你的第一个例子更具惯用性:
addCount () {
this.setState({count: this.state.count + 1})
}
答案 1 :(得分:0)
当你执行'a = b ++'时,首先将b的值赋给a,然后递增b。它被称为后增量。 在你的例子中它是相同的:'count'将等于'this.state.count'(所以值将是相同的)然后你增加'this.state.count',但它将被'count`替换'当setState完成因为你改变了状态。 setState在这里设置你的变量,不要在这个方法中改变它。
你的第一个主张是做你想做的事。
希望这有帮助!