button
时,它会调用函数 render和componentWillReceiveProps ,但它显示(this.props.val)的不同值为什么?
这是代码 https://codesandbox.io/s/g5119XP2Z
class App extends Component {
update(){
render(<App val={this.props.val + 1 }/>, document.getElementById('root'));
}
componentWillReceiveProps(nextProps){
console.log(nextProps.val);
console.log("====================");
console.log(this.props.val,"val");
}
render(){
console.log("render========")
console.log(this.props.val,"val render");
return (
<div style={styles}>
<button onClick={this.update.bind(this)}>{this.props.val}</button>
<h2>Start editing to see some magic happen {'\u2728'}</h2>
</div>
)
答案 0 :(得分:1)
顾名思义,ComponentWillReceiveProps
会在更改任何属性值时触发,组件将在nextProps
集合中接收它。因此,此事件查找更改的值并使用新值更新组件的props集合。只有在render
执行之后才有意义。
更多详情: