using Atomx.Admin.Client.Services; using Microsoft.AspNetCore.Components; namespace Atomx.Admin.Client.Utils { /// /// 继承此基类的组件会自动订阅 LanguageProvider 的语言变更事件并在变更时重新渲染。 /// public abstract class LocalizedComponentBase : ComponentBase, IDisposable { [Inject] protected LanguageProvider LanguageProvider { get; set; } = null!; protected override void OnInitialized() { base.OnInitialized(); LanguageProvider.OnLanguageChanged += LanguageChangedHandler; } private void LanguageChangedHandler() { // 在组件上下文中安全调用 StateHasChanged _ = InvokeAsync(StateHasChanged); } public void Dispose() { LanguageProvider.OnLanguageChanged -= LanguageChangedHandler; } } }