8000 Changing @Code wont rerender CodeBlock · Issue #5 · altudev/Brism · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Changing @Code wont rerender CodeBlock #5
Open
@skyslide22

Description

@skyslide22

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0