我在 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/