0

我有一个带有 js 文件的 Razor 类库 [My.Widget]:

小部件.js

var Widget = (function () {

    function show() {
        alert("Show");
    }

    return {
        show: show
    }

}());

在我的 WebAssembly 中,我已经加载了 js 文件:

索引.html

<script src="_content/My.Widget/widget.js"></script>

我可以在浏览器开发工具中看到它正确加载。

RCL 有一个互操作文件

public class WidgetJsInterop : IAsyncDisposable
{
    readonly Lazy<Task<IJSObjectReference>> _moduleTask;

    public WidgetJSInterop(IJSRuntime jsRuntime)
    {
        _moduleTask = new(() => jsRuntime.InvokeAsync<IJSObjectReference>(
            "import", "./_context/My.Widget/widget.js").AsTask());
    }

    public async ValueTask Show()
    {
        IJSObjectReference? module = await _moduleTask.Value;
        await module.InvokeVoidAsync("Widget.show");
    }
}

我在上面的互操作类中成功调用了 Show 方法,我可以看到 js 已加载到开发工具中,但出现异常:

Microsoft.JSInterop.JSException:找不到“Widget.show”(“Widget”未定义)。

有任何想法吗?

4

0 回答 0