Open
Description
When i change @_code in any way, the CodeBlock does not rerender, i assume blazor loses track of the DOM after prism manipulated it (i have disabled DOM preservation in app.razor)
I am using:
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@rendermode InteractiveWebAssembly
<CodeBlock
Code=@_code
Language="@Language"
/>
My workaround is to completely destroy the component and let it rerender from scratch.
<CustomCodeBlock
@ref="CustomCodeBlock"
Language="CodeLanguage.Razor"
/>
await CustomCodeBlock.SetCode("xxx");
CustomCodeBlock.razor
@if(_show)
{
<CodeBlock
Code=@_code
Language="@Language"
/>
}
@code {
string _code = string.Empty;
bool _show = true;
public async Task SetCode(string code)
{
_code = code;
_show = false;
StateHasChanged
4CE0
();
await Task.Yield();
_show = true;
StateHasChanged();
await Task.Yield();
}
[Parameter]
public CodeLanguage Language { get; set; }
}
Is there a better way to rerender the <CodeBlock />
?
Metadata
Metadata
Assignees
Labels
No labels