这应该很简单,但我真的找不到一种方法来将.js添加到项目中. 我用如下所示的简单代码创建了一个.razor页面:
@page "/text"
@rendermode InteractiveAuto
@inject IJSRuntime JsRuntime
@implements IAsyncDisposable
<h2>Test @text</h2>
<button @onclick="LoadText">Load</button>
@code
{
string text = "";
private IJSObjectReference module;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
module = await JsRuntime.InvokeAsync<IJSObjectReference>(
"import", "./js/index.js");
}
}
private async Task LoadText()
{
text = await module.InvokeAsync<string>("logToConsole");
}
}
并在名为js的wwwroot目录中创建了一个带有我放入的函数的.js文件:
export function logToConsole() {
return "My text"
}
而不是追加文本,它抛出一个错误:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Failed to resolve module specifier '.js/index.js'
TypeError: Failed to resolve module specifier '.js/index.js'
...
try 更改路径,try 所有渲染模式,但无济于事.