1
在接收新道具的组件中,发生了一个奇怪的行为。该组件将收到一个对象和一个日期对象。React更新生命周期方法返回日期相同的道具
每当对象更新时,componentWillUpdate(nextProps, nextState)
nextProps.someObject将按照预期返回与this.props.someObject不同的对象。 但是,当更新日期对象时,this.props.someObject已包含存储在nextProps中的新更新日期。
我在这里丢失了关于数据类型或引用的内容?
EDIT
用一个例子:
- 渲染SomeComponent与日期= 2017年8月8日,并以{名称: “约翰”}对象
- 更新SomeComponent与日期= 09/08/2017,并以{名: “Doe的”}对象
SomeComponent date={newDate} someObject={newSomeObject}
componentWillUpdate: function(nextProps, nextState){
console.log(nextProps.date !== this.props.date); // at update: false
console.log(nextProps.someObject.name !== this.props.someObject.name); // at update: true
}
添加一个例子。 –
你是否在同一时间更新两个道具?或者可能没有同步,所以你会得到2个componentWillUpdate调用,也许你会混淆2 –
否道具更新是基于两个不同时发生的动作。因此,无论JavaScript对象如何,this.props.date始终等于nextProps.date(是更新后的值) – BrFreek