Blazor自定义AuthenticationStateAncy启动后调用失败,原因是JavaScript

Blazor自定义AuthenticationStateAncy启动后调用失败,原因是JavaScript,blazor,Blazor,我有一个Blazor服务器端程序,在那里我通过从JavaScript读取令牌实现了自己的身份验证 工作正常-除了在启动时,读取失败(当然,因为服务器端渲染需要OnAfterRender才能调用JavaScript) 但在这里,代码由Blazor自己执行并抛出异常 如何修复此问题,即此调用不会在其他运行时(渲染后)进行或运行 ThxJSInterop只能在应用程序呈现之后才能访问,而不是之前。 要解决此问题,需要从组件的OnAfterRender或OnAfterRenderAsyn方法调用Toke

我有一个Blazor服务器端程序,在那里我通过从JavaScript读取令牌实现了自己的身份验证

工作正常-除了在启动时,读取失败(当然,因为服务器端渲染需要OnAfterRender才能调用JavaScript)

但在这里,代码由Blazor自己执行并抛出异常

如何修复此问题,即此调用不会在其他运行时(渲染后)进行或运行


Thx

JSInterop只能在应用程序呈现之后才能访问,而不是之前。 要解决此问题,需要从组件的OnAfterRender或OnAfterRenderAsyn方法调用TokenStorageService.GetToken。下面是一段代码片段,用于演示以下内容:

@page "/mypage"

@inject TokenStorageService tokenService 

@code{

  protected override async Task OnAfterRenderAsyn (bool firstRender)
  {
     // Ensure that the app has been rendered, and it is the first 
     // render. Note also that this code is only executed once. And it
     // won't be executed on recurring calls to the OnAfterRenderAsyn.
     // This makes it an ideal place to initialize JavaScript objects.
     if(firstRender)
     {
         var token = await TokenStorageService.GetToken();
     }
 }
 }

是的,谢谢你的回复。我已经知道这一点,但正如您在屏幕截图中看到的,代码来自内部Blazor“Host.ExecuteAsync”。。。所以我什么都处理不了。这可能是因为我使用CascadingAuthenticationState,但我需要使用登录功能。。。