if语句中的setState()问题

里昂

if语句中的setState():

// morePage = true
// pageNum = 1

if(morePage){
  this.setState({pageNum: this.state.pageNum+1})
}

console.log(this.state.pageNum); // return: 1

setState()输出if语句:

// morePage = true
// pageNum = 1

if(morePage){
  // ... 
}
this.setState({pageNum: this.state.pageNum+1})

console.log(this.state.pageNum); // return: 2

我现在正面临着这种情况,我想知道为什么...

谢谢 :)

正确答案后进行编辑:

所以,是的,我应该花更多的时间阅读React的Doc:P如果有人有兴趣知道我最终的工作方式,那么答案是:

在文档中,他们说不能保证在重新渲染之前您的州将拥有新的价值。因此,您必须使用“ componentDidUpdate()”。

所以我要做的是:

this.setState({pageNum: this.state.pageNum+1})

在我创建的随机函数中,然后在“ componentDidUpdate(prevProps,prevState)”函数中,我可以访问新的和旧的props值,在那里我可以使用“ pageNum”的先前值和当前值:)

州少
setState()不会立即使this.state发生突变,但会创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。
无法保证对setState的调用的同步操作,并且可能会为提高性能而对调用进行批处理。

如前所述,不能保证状态值将在您的下一行代码中更新。

如果要检查状态以进行调试,请尝试将其登录到render方法中,因为在状态更新后将调用此方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

批量If语句中的问题

来自分类Dev

if语句中的可变问题

来自分类Dev

if 语句中的问题

来自分类Dev

awk if 语句中的问题

来自分类Dev

findall 语句中的 " 问题

来自分类Dev

if语句中的数学问题

来自分类Dev

在if语句中检查范围的问题

来自分类Dev

if语句中的数学问题

来自分类Dev

JOIN语句中的SQL问题

来自分类Dev

在If语句中使用.toggleClass的问题

来自分类Dev

Rcpp中if-else语句中的问题

来自分类Dev

简单语句中的BigInteger逻辑问题

来自分类Dev

SQL语句中的预期参数存在问题

来自分类Dev

SQL语句中的语法错误问题

来自分类Dev

if语句中的剔除怪异绑定问题

来自分类Dev

在else语句中遇到问题

来自分类Dev

Rcpp中if-else语句中的问题

来自分类Dev

此条件语句中的逻辑问题

来自分类Dev

非常简单的 if 语句中的逻辑问题

来自分类Dev

if/else 语句中的大括号问题

来自分类Dev

WHERE 子句中 CASE 语句中的 BETWEEN 问题

来自分类Dev

问题在razor if语句中调用javascript函数

来自分类Dev

在create语句中处理拒绝问题-不触发

来自分类Dev

在if / else语句中使用子字符串的问题

来自分类Dev

SQL语句中有多个PHP变量的问题

来自分类Dev

在SELECT语句中使用参数时的性能问题

来自分类Dev

在if语句中嵌入foreach的代码出现问题

来自分类Dev

PHP isset在else语句中获取问题错误

来自分类Dev

(Java)Switch语句中的全局变量问题