Reactjs this.setProps不会自动更新

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

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

感谢您花时间回复。相关代码如下

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
},

setState和SetProp都不会立即发生变异-根据Reacts文档:

setState()不会立即改变this.state,但会创建 等待状态转换。调用此命令后访问this.state 方法可能返回现有值。没有 保证对setState的调用和可能发生的调用的同步操作 为提高性能而进行批处理


更新方法应该调用setState,渲染方法将根据更新的状态执行

如果变量的值发生变化,则应使用
setState
this.state
object,因为我找不到编辑,我想了一下。是不是因为它是一个异步函数,在我打开控制台日志时还没有时间更新?只是想一想。你为什么要首先使用不推荐的
setProps
?我甚至不认为这是当前的反应。(已确认,在0.14中删除)在任何情况下,我都假设like
setState
不会立即发生。另见。两年多以前。我明白了,谢谢你的回答。为什么setProps被弃用,setState的方式去吗?@woodwick你不应该修改组件本身的道具。道具是在组件外部处理的变量(来自父组件,如果是顶级组件,则来自外部React),并作为道具传递给组件(自顶向下)。它们在您的组件中应该是不可变的。感谢您对特定文档的参考。