Извините, если вопрос связан с моей неопытностью. Я пытаюсь сделать библиотеку компонентов для работы с картографическим боксом из Blazor. Теперь у меня есть основной компонент MapBoxView, отображающий карту, и MapboxGeocoder, который используется для поиска объектов. Каждый компонент имеет процедуру в основном компоненте OnFirstAfterRenderAsyn c ():
protected async override Task OnFirstAfterRenderAsync()
{
await base.OnFirstAfterRenderAsync();
Dictionary<string, object> o = new Dictionary<string, object>();
...
await JsInvokeAsync<object>("mapgl.mymap.initMap", o);
}
и во вложенном компоненте:
protected async override Task OnFirstAfterRenderAsync()
{
await base.OnFirstAfterRenderAsync();
Dictionary<string, object> o = new Dictionary<string, object>();
o.Add("container", container);
await JsInvokeAsync<object>("mapgl.mygeocoder.initGeocoder", o);
}
В демонстрационной программе я использую код:
@page "/"
<MapBoxView zoom=@_zoom container=@containerName mapCenter=@centerOfView>
</MapBoxView>
<MapBoxGeocoder Id="geocoder">
</MapBoxGeocoder>
тогда все работает нормально, и я получаю желаемое изображение: ![enter image description here](https://i.stack.imgur.com/CvSee.png)
When in demo program I use code:
То есть я помещаю вложенный компонент в основной, то геокодер (левое нижнее окно с текстом - Поиск по картинке) не отображается и программа не входит в процедуру OnFirstAfterRenderAsyn c () компонента MapBoxGeocoder. Основной компонент MapBoxView имеет код бритвы:
@namespace MapBoxBlazor
@inherits BaseMapBoxView
<div id='mapContainer'>
</div>
Что я делаю не так? Как это сделать правильно?