【发布时间】:2017-07-30 02:59:02
【问题描述】:
你能告诉我吗
为什么 props 在 render 和 componentWillReceiveProps 中显示不同的值?当我点击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>
)
【问题讨论】:
-
componentWillReceiveProps在组件实际接收到这些新道具之前运行,这会触发重新渲染并更改this.props.val的值。您可以查看documentation forcomponentWillReceiveProps了解更多信息。
标签: javascript reactjs react-native react-router react-redux