Blazor: как вызвать JavaScript после рендеринга HTML - PullRequest
0 голосов
/ 19 июня 2020

У меня есть настраиваемый компонент, и когда он отображается в браузере, мне нужно измерить его размер (в JavaScript) и снова позвонить в Blazor.

Как мне зарегистрировать JavaScript для вызова после рендеринг конкретного компонента выполнен?

1 Ответ

2 голосов
/ 19 июня 2020
  1. Включите сценарий в свой wwwroot.
  2. Ссылка на него в индексе. html или _Host.cs html файл
  3. Добавьте в свой компонент @inject IJSRuntime JSRuntime
  4. Добавьте @ref к элементу, который вы sh измеряете <div @ref=MeasureMe>
  5. В @code объявите поле ElementReference MeasureMe
  6. Переопределить OnAfterRenderAsyn c и выполните var whatever = JSRuntime.InvokeAsync<YourResultType>("yourJSFunctionName", MeasureMe)

Примечание. Если у вас включен предварительный рендеринг на стороне сервера, не используйте JSRuntime в первый раз до тех пор, пока OnAfterRenderAsync не будет выполнено с firstRender == true.

Также обратите внимание: компоненты не визуализируются повторно при изменении размера браузера.

У меня есть раздел о JSInterop в Blazor University .

...