【问题标题】:How to run bundled javascript files in blazor web assembly?如何在 blazor webassembly 中运行捆绑 javascript 文件?
【发布时间】:2020-08-21 03:06:53
【问题描述】:

我将捆绑的脚本文件保存在 blazor_wasm 应用程序的 wwwroot 文件夹中。

  1. 我在 index.html 中使用脚本标签添加了文件
    <script src="assets/plugins/global/plugins.bundle.js"></script>

    <script src="assets/js/scripts.bundle.js"></script>
  1. 我已将 scripts.bundle.js 代码放在函数 callJS 中

    function callJS() {/** bundled js**/}

  2. 我在剃须刀页面中使用 js 互操作调用了该函数,但这会给出错误

    protected override async Task OnAfterRenderAsync(bool firstRender){
        if (firstRender)
        {
            await jsRuntime.InvokeVoidAsync("callJS");
        }
     }
    

这些是错误

异步方法的返回类型必须是void、Task、Task、a
类任务类型、IAsyncEnumerable 或 IAsyncEnumerator wasm_app

'Index.OnAfterRenderAsync(bool)':返回类型必须是'Task'才能匹配 覆盖成员 'ComponentBase.OnAfterRenderAsync(bool)' wasm_app

这是运行文件的正确方式还是我必须使用另一个生命周期事件? 我正在使用敏锐的引导主题,它使用 webpack 生成捆绑的 js 和 css 文件。

【问题讨论】:

    标签: blazor blazor-client-side interopservices asp.net-blazor blazor-jsinterop


    【解决方案1】:

    答案很简单,我们只需将js interops代码放在MainLayout.razor页面中。我就是这样解决的

    【讨论】:

    • 你能举个例子来说明你是如何做到的吗?我还需要类似地执行一个静态资产 .js 文件。
    • 复制捆绑的 js 文件夹并粘贴到 blazor wasm 中的 www.root 文件夹中。因为 Js 需要互操作才能运行所以我在 --> scripts.bundle.js 文件 window.callBundleJS = () => {****code****} 顶部添加了这个函数并在 Mainlayout.razor 页面中调用它使用 OnAfterRenderAsync 生命周期方法。我所做的方式,还将捆绑的 js 文件包含在 index.html
    猜你喜欢
    • 2017-12-05
    • 2021-10-05
    • 1970-01-01
    • 2012-12-03
    • 2021-04-15
    • 2023-03-03
    • 2020-10-25
    • 2021-10-20
    • 2023-02-10
    相关资源
    最近更新 更多