我在一个完整的 Blazor 项目中创建了一个 Blazor 组件,并且一切正常。但是,当我将此组件移动到它自己的 Razor 类库项目时,我现在收到一个错误,即在与服务器建立连接之前我无法使用 JSInterop。我在 OnAfterRenderAsync() 方法中运行我的代码。
进行更改时,我不得不稍微更改代码。在完整的 Blazor 项目中,在 Startup 类中通过 DI 为您提供了 JSInterop。但是对于 calss 库,情况并非如此。
因此,我不得不像这样设置它,而不是页面中的“@inject JSInterop js” -
private IJSRuntime js { get; set; }
protected override void OnInitialized()
{
js = ScopedServices.GetRequiredService<IJSRuntime>();
}
从网络上提供的粗略细节来看,我假设这从父项目获取服务。
使用调试,我可以看到 js 不为空。它似乎已设置为有效对象。
谁能指出我正确的方向?