this.setProps不会自动更新

时间:2017-02-07 16:59:13

标签: reactjs

在React中假设我有一个名为myProperty的整数变量,它是从getDafaultProps返回的,如果我在更新函数中调用this.setProps(myProperty + 1)之前和之后的console.log(myProperty),控制台会记录相同的值对于myProperty。属性在函数结束后更新,下次调用我的函数时myProperty是新值,但是有人知道为什么或者更确切地向我解释为什么myProperty在调用this.setProps时不会立即更新?

感谢您抽出宝贵时间作出回应。以下相关代码

getDefaultProps: function() {
    return { colorIndex: -1 };
},
update: function() {
    console.log("clicked and index is " + this.props.colorIndex); //returns -1
    this.setProps({colorIndex: this.props.colorIndex + 1});
    console.log("index is now " + this.props.colorIndex); /still returns -1
},

1 个答案:

答案 0 :(得分:1)

setState和setProps都不会立即变异 - 来自Reacts文档:

https://facebook.github.io/react/docs/react-component.html#setstate

  

setState()不会立即改变this.state但会创建一个   待定状态转换。调用后访问this.state   方法可以返回现有值。没有   保证调用setState和调用的同步操作   为获得业绩增长而受到批评。

您的更新方法应调用setState,您的render方法将根据更新的状态执行。