在react开发过程中由于setState的异步特性,获取最新state遇到问题

 1 //在父组件内 改变 state.dataSetValue
 2 <Select onChange={(value) => {
 3              this.setState({
 4                    dataSetValue: value
 5              });}}>
 6     <option>1</option>    
 7     <option>2</option>
 8 </Select>
 9 
10 // 将state.dataSetValue属性传给DataSetSubDirectory子组件
11 <DataSetSubDirectory
12 dataSetValue={this.state.dataSetValue} />
13 
14 // 在子组件生命周期函数componentWillReceiveProps内可以获取最新的props
15 componentWillReceiveProps(nextProps) {
16     console.log(nextProps.dataSetValue);
17     this.handelGetDataSetSubDirectory(nextProps.dataSetValue);
18 }

重点:在react的componentWillReceiveProps(nextProps)生命周期中,可以在子组件的render函数执行前获取新的props,从而更新子组件自己的state。 

猜你喜欢

转载自www.cnblogs.com/dadouF4/p/10139662.html