//Parent.js
class Parent extends React.Component {
constructor() {
super();
this.state = {
name: 'zhangsan'
}
}
test() {
this.setState({
name: 'lisi'
})
}
render() {
return (
<div>
<button onClick={this.test.bind(this)}>gogo</button>
<Sub1 />
</div>
)
}
}
export default Parent
//Sub1.js
class Sub1 extends React.Component {
componentWillReceiveProps(nextProps) {
console.log('componentWillReceiveProps from sub1')
}
render() {
return <div>Sub1x</div>
}
}
export default Sub1
Parent中加载Sub1时未设置props。
点击按钮时,Parent中的state发生了变化,导致了Sub1中触发了componentWillReceiveProps事件,这个合理吗??
看了下确实是这样的,是因为父组件的state变化,父组件有更新,但是子组件没有没有引用任何属性的情况下也更新了,确实不是很合理,虽然最后dom diff之后不会有任何变化