gpt4 book ai didi

reactjs - 传递 Prop 时,react-google-maps map 未更新,更新时标记落后一个位置

转载 作者:行者123 更新时间:2023-12-03 13:45:07 25 4
gpt4 key购买 nike

我让 map 在加载时工作,但每当我传递 Prop 时, map 本身永远不会改变。

标记发生变化,但始终落后于应有的状态 1,显然是同步问题,但我不确定如何在组件中修复此问题。

class Map extends React.Component {
state = {
center: { lat: 50.937531, lng: 6.960278600000038 }
}

componentWillReceiveProps = () => {
this.setState({
center: {
lat: Number(parseFloat(this.props.city.lat)),
lng: Number(parseFloat(this.props.city.lng))
}
});
}

render() {
console.log(this.state.center)
return (
<div>
<MapDetails
googleMapURL="https://maps.googleapis.com/maps/api/js?key=AIzaSyB-L-IikkM6BZ_3Z2QIzbkx4pdAkP76tok&v=3.exp&libraries=geometry,drawing,places"
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `100vh`}} />}
mapElement={<div style={{ height: `100%` }} />}
mapCenter={this.state.center}
/>
</div>
)
}
}

const mapStateToProps = (state) => {
return { city: state.CityNameReducer }
}

export default connect(mapStateToProps)(Map);

const MapDetails = withScriptjs(withGoogleMap(props =>
<GoogleMap
defaultZoom={12}
defaultCenter={props.mapCenter}
>
<Marker
position={props.mapCenter}
/>
</GoogleMap>
));

我最大的问题是为什么 map 本身没有更新?

最佳答案

向 GoogleMap 组件添加一个键。每次提供的 key 都应该是唯一的。为了进行测试,请使用新的 Date().getTime() 函数。

<GoogleMap key={new Date().getTime()}/>

正如我提到的,它仅用于测试,因此请确保以更好的方式提供此 key

关于reactjs - 传递 Prop 时,react-google-maps map 未更新,更新时标记落后一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com