reactjs - 从 API 接收位置数据后加载反应谷歌地图组件
问题描述
我已经react-redux
处理了从 API 获取位置数据的操作,并且它运行良好(控制台显示填充了 redux 的 loc 状态)。如果我console.log
首先在 Map.js 中定位它会显示undefined
,然后它会显示数据。因此,我想我无法在地图上加载标记,因为 Google 地图会尝试立即加载它。所以问题是如何让谷歌地图在获取标记(来自 API)时加载标记或完整组件?
我正在尝试使用钩子和功能组件来加载地图。我尝试使用useEffect
,但我不知道该怎么做。'小白'
let Map = ({ loc }) => {
useEffect(() => {
if (!loc) etchLoc();
}[]);
return (
<GoogleMap ...>
<MarkerCluser>
{loc.map((item, index) => (
<Marker ... />
)}
</MarkerCluser>
)
}
解决方案
我希望我能很好地理解问题。你可以使用稍微不同的方法,像这样的事情:
let marker = "";
if (loc !== null) {
marker = locations.map((m, index) => (<Marker ... />
然后在地图使用{marker}
我假设状态中的 loc 设置为 null ...
希望有帮助。
推荐阅读
- c# - 将 SSO 与 IdentityServer 4 一起使用时 iFrame 中的会话超时
- salesforce-ios-sdk - FaceId 要么崩溃,要么在身份验证时显示错误?
- microsoft-teams - 如何使用流中的@channel ping Teams 频道?
- angular - 无法绑定到“expandedHeight”,因为它不是“mat-accordion”的已知属性
- r - 如何在R语言中单行打印
- excel - 复制每个工作表中的所有行
- powershell - 根据错误结果循环遍历文件(使用 Powershell)并一次移动一个文件的问题
- kubernetes - Kubernetes 架构
- sonarqube - 如何在 JenkinsPipeline 中修复与 SonarQube 一起使用的阶段
- python - 如果它们是由 for 循环创建的,我如何获取单击的按钮的名称?