Is there any way to detect the pre-rendering is going on in a Blazor component from the OnInitializedAsync
life cycle method? I know the component workflow would call OnInitializedAsync
called two times, the first time for the pre-rendering and the second time for actual rendering. Finally, called the OnAfterRenderAsync
method in a single time for actual rendering.
But, I need to detect the pre-rendering in OnInitializedAsync
. So that I could make some changes in pre-rendering and prevent it in actual rendering vice versa.
I checked the below GitHub issue, but it doesn't have a valid solution. I hope, it should be addressed in an API like IsPrerendering
.
https://github.com/dotnet/aspnetcore/issues/17282
Thanks in advance.
There is no API built in, but you can use the HTTP context to detect it.
I have wrapped this up in a nuget package here
https://www.nuget.org/packages/PreRenderComponent
Update:
Since this time, things have changed and, while there is still no api for detecting this, you should only perform external calls (like JSInterop and HTTP calls) once OnAfterRender/OnAfterRenderAsync has been called.
If you stick to this pattern, you don't ever need to know about pre-rendering status.