簡體   English   中英

如何在 blazor 中刷新頁面重置值后?

[英]How to after refresh page resetting value in blazor?

我想在用戶 go 到儀表板頁面后,在ISessionStorageService正常工作時獲取當前使用登錄,儀表板在布局頁面中有一個布局,獲取當前用戶登錄的SessionStorage值,

布局頁面

h1>@UserInfo.FullName</h1>

@Body

@code {

    private LoginUser UserInfo = new LoginUser();

    async Task UpdateUserInfo() => UserInfo = await SessionStorage.GetItemAsync<LoginUser>("LoginUser");

    protected override async Task OnInitializedAsync()
    {
        await UpdateUserInfo();
    }
}

登錄頁面設置值

await SessionStorage.SetItemAsync("LoginUser", loginUser);

注意:用戶登錄和頁面之間的切換工作但是當我想刷新頁面時會出錯

InvalidOperationException: JavaScript interop calls cannot be issued at this time. This is because the component is being statically rendererd. When prerendering is enabled, JavaScript interop calls can only be performed during the OnAfterRenderAsync lifecycle method.

當您使用預渲染時,您不能在此過程進行時調用 JavaScript 方法。 而是在 OnAfterRender(Async) 對中設置對 UpdateUserInfo 方法的調用,如下所示:

protected override async Task OnAfterRenderAsync(bool firstRender)
{
       if( firstRender )
       {
           await UpdateUserInfo();
           InvokeAsync( () => StateHasChanged());

        }
}

希望這可以幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM