mapbox - Blazor 下的 MapBox 中实时移动点不会改变 map 上的位置

标签 mapbox real-time blazor

我在 Blazor 下使用 MapBox。 JSON 坐标有一点是实时变化的。在 Index razor 页面中,单击鼠标,我调用 javascript 函数:

refreshJSON: function (str) { 
  window.jsontest = JSON.parse(str);
  window.map.getSource('drone').setData(window.jsontest);
}

其中 jsontest 包含新坐标,但该点在屏幕上的位置不会改变。 我该如何解决这个问题? 在 Index.razor 代码中:

public void refreshMapJson()
{
    refreshCoords();
    JSRuntime.InvokeAsync<object>("mapBoxFunctions.refreshJSON",currJson);
    InvokeAsync(() =>
        {
            StateHasChanged();
        }
     );
}

最佳答案

等待您的方法:

public async Tassk refreshMapJson()
{
    refreshCoords();
    await JSRuntime.InvokeAsync<object>("mapBoxFunctions.refreshJSON",currJson);
    StateHasChanged();
}

如果您不想使用可等待方法,则在JSRuntime.InvokeAsync返回时调用StateHasChanged

public void refreshMapJson()
{
    refreshCoords();
    JSRuntime.InvokeVoidAsync("mapBoxFunctions.refreshJSON",currJson)
       .ContinueWith(t => StateHasChanged());
}

关于mapbox - Blazor 下的 MapBox 中实时移动点不会改变 map 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59695606/

相关文章:

ios - 类型 'MGLMapView?' 的值在设置 ClusterKit 时没有成员 'clusterManager'

google-analytics - 谷歌分析 : How to get events over last 90 minutes

real-time - 是否可以将 core i7 用于硬实时操作系统?

c - C/C++ 中的实时间隔

blazor - 为什么 Blazor 的 EditForm 需要点击两次提交按钮才能执行任何操作?

core - Blazor - 可以在后面的代码中使用 NavigateTo 吗?

mapbox - 如何显示线上的距离标记(Mapbox-gl)?

leaflet - Mapboxjs 中图 block 图层上的 maxNativeZoom 是否存在问题?

javascript - 如何在簇中制作不同颜色的标记

当其他组件调用方法时,Blazor 组件不更新 UI