shouldComponentUpdate在子组件React js中不起作用

时间:2018-04-19 07:53:33

标签: javascript reactjs react-component

当我使用来自父组件的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;
    }

1 个答案:

答案 0 :(得分:0)

shouldComponentUpdate()会影响父组件。如果它返回true,则父组件将被重新呈现。 所以,我认为你应该将shouldComponentUpdate()转移到BookingDetails组件中。