繁体   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