Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Should I use OnAfterRenderAsync instead of OnInitializedAsync?

$
0
0

In a Blazor server component, I use OnInitializedAsync() to connect an event from an injected service:

protected override async Task OnInitializedAsync(){    _fooRepository.SomethingChanged += OnSomethingChanged;    await Refresh();}public void Dispose(){    _fooRepository.SomethingChanged -= OnSomethingChanged;}private async Task Refresh(){    this.FooData = await LoadDataFromRepository();}

Unfortunately, according to the documentation, the OnInitializedAsync method may be called twice, depending on the render mode.

I found some examples that recommend using OnAfterRenderAsync for the initialization logic instead:

protected override async Task OnAfterRenderAsync(bool firstRender){    if (firstRender)    {        _fooRepository.SomethingChanged += OnSomethingChanged;        await Refresh();    }}[... Dispose and Refresh as above... ]

Are there disadvantages when using OnAfterRenderAsync instead of OnInitializedAsync? It seems to me that I should abandon OnInitializedAsync and default to OnAfterRenderAsync instead.


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>