从API接收位置数据后加载React Google Map组件

时间:2019-08-01 08:58:49

标签: reactjs react-redux react-hooks

我有react-redux可以处理从API提取的位置数据,并且效果很好(控制台显示loc状态已填充在redux中)。如果我在Map.js中console.log个位置,则首先显示undefined,然后显示数据。因此,我想我无法在地图上加载标记,因为Google地图试图立即加载它。所以问题是当从API提取标记时,如何使Google地图加载标记或完整组件?

我正在尝试使用挂钩和功能组件来加载地图。我尝试使用useEffect,但我不知道该怎么做。 'noob'

let Map = ({ loc }) => {
  useEffect(() => {
    if (!loc) etchLoc();
}[]);

return (
 <GoogleMap ...>
    <MarkerCluser>
       {loc.map((item, index) => (
            <Marker ... />
       )}
    </MarkerCluser>
     )
}

1 个答案:

答案 0 :(得分:1)

我希望我能很好地理解问题。您可以使用略有不同的方法,例如这样的东西:

let marker = "";
    if (loc !== null) {
        marker = locations.map((m, index) => (<Marker ... />

,然后在地图中使用{marker}

我假设loc in state设置为null ...

希望有帮助。