当我使用来自父组件的setState更新我的状态时,我的子组件得到渲染(因为道具得到了改变)
父组件
addonsHandler =(addons) =>{
this.setState({addons:addons}, () => {
// console.log(this.state.addons);
});
};
render() {
return (
<div>
<Row>
<Col span={15} offset={2}>
<AntForm pickupHandler= {this.pickupHandler} dropHandler={this.dropHandler} addonsHandler={this.addonsHandler} ambulanceTypeHandler={this.ambulanceTypeHandler}/>
<Button type="primary" onClick={this.drop} >Drop</Button>
<Button type="primary" onClick={this.calculateRoute}>Direction</Button>
{/*<div id="map" style={{height: "600px"}}></div>*/}
<Map onRef={ref => (this.MapRef = ref)} />
</Col>
<Col span={6} offset={1}>
<BookingDetails addons={this.state.addons} price={this.addonObj} ambulaceType={this.state.AmbulanceType} VehiclePrice={this.ambulacneTypeObj} />
</Col>
</Row>
<Row>
<Col span={15} offset={2}>
</Col>
</Row>
</div>
);
}
所以当插件状态在父组件中获得更改时,我想停止仅渲染 Map 组件
所以我在地图组件中使用shouldComponentUpdate
,但它没有停止渲染到组件
shouldComponentUpdate(nextProps, nextState) {
return false;
}
答案 0 :(得分:0)
shouldComponentUpdate()会影响父组件。如果它返回true,则父组件将被重新呈现。 所以,我认为你应该将shouldComponentUpdate()转移到BookingDetails组件中。