BlazorServer应用程序中无法从新电路调用JSInterop
创始人
2024-12-21 16:00:20
0

在Blazor Server应用程序中,当您创建一个新的Circuit时,它将被视为一个完全独立的环境,因此可能无法调用之前创建的JSInterop功能。要解决这个问题,需要在启动应用程序时注册JSInterop功能并确保它们在整个应用程序的生命周期内都是可用的。

以下是一个示例,演示如何注册一个JSInterop功能并在新的电路中使用它:

// Startup.cs

public void ConfigureServices(IServiceCollection services) { // 注册JSInterop功能 services.AddJsInterop();

// 省略其他代码

}

// JsInteropExtensions.cs

public static class JsInteropExtensions { public static IServiceCollection AddJsInterop(this IServiceCollection services) { // 注册JSInterop服务 services.AddSingleton();

    return services;
}

}

// MyJSInteropService.cs

public class MyJSInteropService : IJSInteropService { private readonly IJSRuntime _jsRuntime;

public MyJSInteropService(IJSRuntime jsRuntime)
{
    _jsRuntime = jsRuntime;
}

public async Task DoSomething()
{
    // 在这里执行JS操作
    await _jsRuntime.InvokeAsync("myFunction");
}

}

// MyComponent.razor

@inject IJSInteropService MyJSInteropService

@code { protected override Task OnInitializedAsync() { // 调用JSInterop功能 await MyJSInteropService.DoSomething(); } }

在此示例中,我们在应用程序启动时注册了一个名为“MyJSInteropService”的JSInterop服务。该服务仅作为带有IJSInteropService接口的DoSomething()方法的封装器,该接口可在应用程序的其余部分使用。 MyComponent.razor组件再次注入IJSInteropService并使用DoSomething()方法调用它。

一旦运行,此代码将在新的电路中成功调用JSInterop

相关内容

热门资讯

反观!wepoker作弊视频,... 反观!wepoker作弊视频,德扑之星辅助工具如何打开,一直真的有挂(确实有挂)小薇(辅助器软件下载...
第三方辅助挂!epoker透视... 第三方辅助挂!epoker透视,德普之星怎么设置埋牌,本来确实有挂(有挂总结)在进入德普之星怎么设置...
据文件显示!we-poker有... 据文件显示!we-poker有人玩吗,智星德州插件2024最新版,原来确实有挂(有挂实锤)1、据文件...
2026版教学!智星德州插件最... 2026版教学!智星德州插件最新版本更新内容详解,德扑之星有透视辅助吗,总是真的有挂(有挂方针)智星...
此事引发网友热议!aa pok... 此事引发网友热议!aa poker透视软件,德扑圈有透视吗,果然确实有挂(有挂透明挂)1、操作简单,...
现就发布提示!福建大菠萝万能辅... 现就发布提示!福建大菠萝万能辅助器,如何下载德普之星辅助软件,确实是真的有挂(有挂技巧)如何下载德普...
黑科技技巧!wepoker辅助... 黑科技技巧!wepoker辅助器官方,德普之星私人局辅助器,原来是真的有挂(新版有挂)1、下载好德普...
今天下午!智星德州插件,德扑之... 今天下午!智星德州插件,德扑之星透视辅助插件,其实确实有挂(有挂分析)德扑之星透视辅助插件脚本下载中...
截至目前!hhpoker软件靠... 截至目前!hhpoker软件靠谱吗,德普之星辅助软件,原来确实有挂(有挂技术)1、德普之星辅助软件脚...
总结辅助挂!hhpoker有后... 总结辅助挂!hhpoker有后台操作吗,德普之星透视辅助,一直是有挂(存在有挂)1、完成德普之星透视...