Blazor不会在类更改时重新渲染。
创始人
2024-12-21 01:30:39
0

在Blazor中,当组件的状态或属性更改时,框架会自动重新渲染组件。然而,如果只更改了类的属性,而没有更改其他内容,组件不会重新渲染。

为了解决这个问题,可以使用'StateHasChanged”方法手动强制重新渲染组件。例如:

public class MyClass
{
    private string _myProperty;

    public string MyProperty
    {
        get => _myProperty;
        set
        {
            if (_myProperty != value)
            {
                _myProperty = value;
                NotifyStateChanged();
            }
        }
    }

    public event Action OnChange;

    private void NotifyStateChanged() => OnChange?.Invoke();
}

在这个例子中,'MyClass”类包含一个字符串属性'MyProperty”。当这个属性的值更改时,'NotifyStateChanged”方法会被调用并引发'OnChange”事件。

在使用'MyClass”的Blazor组件中,可以订阅'OnChange”事件,并在发生更改时调用'StateHasChanged”方法来强制重新渲染组件。例如:

@page "/my-component"

@if (MyClassInstance != null)
{
    

@MyClassInstance.MyProperty

} @code { private MyClass MyClassInstance; protected override async Task OnInitializedAsync() { MyClassInstance = new MyClass(); MyClassInstance.OnChange += StateHasChanged; MyClassInstance.MyProperty = "Hello, world!"; } }

在这个例子中,'MyComponent”组件订阅了'OnChange”事件,并在初始化时设置了'MyClassInstance”的值,并触发了'StateHasChanged”方法来进行组件的渲染。

由于在'MyClass”类中手动调用了'NotifyStateChanged”方法,在组件的状态或属性更改时,重新渲染组件,从而解决了Blazor不会在类更改时重新渲染的问题。

相关内容

热门资讯

原生有开挂"丫丫老陕... 原生有开挂"丫丫老陕开挂"开挂(透视)辅助软件(黑科技教程有挂分享) >>您好:软件加薇136704...
推荐开挂!小闲54辅助(透视)... 大家好,今天小编来为大家解答sohoopoker辅助这个问题咨询软件客服可以免费测试直接加微信(13...
固有有开挂"贰柒拾智... 固有有开挂"贰柒拾智能辅助柒"开挂(透视)辅助工具(分享教程果真有挂);无需打开直接搜索微信(136...
分享开挂!广东雀神智能插件试用... 分享开挂!广东雀神智能插件试用免费(透视)wepoker轻量版透视系统(存在挂教程开挂辅助软件)>>...
原先有辅助"广丰中至... 原先有辅助"广丰中至510k辅助"开挂(透视)辅助插件(爆料教程新版有挂)广丰中至510k辅助ai黑...
必看开挂!hhpoker怎么防... 您好:hhpoker怎么防辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
固有有辅助"广东雀神... 固有有辅助"广东雀神智能插件使用"开挂(透视)辅助透视(专业教程有挂方式);无需打开直接搜索打开薇:...
通报辅助!中至九江都昌讨赏插件... 通报辅助!中至九江都昌讨赏插件(透视)wepoker破解器有用吗(实用技巧开挂辅助脚本);打开点击测...
起初有辅助"新道游透... 起初有辅助"新道游透视黑科技"开挂(透视)辅助平台(玩家教程果真有挂)您好:新道游透视黑科技这款游戏...
原来有辅助!上品游戏辅助软件(... 原来有辅助!上品游戏辅助软件(透视)wepoker如何设置透视(AI教程开挂辅助下载);无需打开直接...