React父子组件,如何定义

最近,做一个项目xx检测,用到了谷歌地图,差不多的业务数据是在地图上展示,操作筛选的,但是错误的将谷歌地图封装到了一个子组件中,这样导致了一个问题:每当我在地图上划线筛选场强点、热力图的时候,地图组件总在不停的updataComponet(),导致地图图片数据闪动。

页面布局:

页面布局

整个页面的泳道图:

父子组件定义错误导致数据重复渲染

附上关键代码:

ParentComponent:

queryPoint(){
   ...
   // 查找pointDatas信息,并放到父组件的props
   this.setState({
	  key: "image",
   });
}
render(){
    ...
    <GoogleMap
		url={mapUrl}
		center={mapCenter}
		zoom={this.state.key === "history" ? imageArray.zoom : this.zoom}
		levelColor={levelColor}
		pointDatas={pointDatas}
		tscId={tscId}
		setupBoundsAndZoom={this.setupBoundsAndZoom}
		tileList={tiles}
		onClick={this.state.key === "image" ? this.queryPoint : 
		onDrawend={this.onDrawend}
		keyName={this.state.key}
    />
  ...
}

解决这种问题,将googleMap定义父组件,使用子组件调用回调方法,局部更新父组件数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值