Blazor (client / wasm) JSInvoke Ошибка "Значение не может быть пустым" - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь запустить функцию javascript с именем loadJsOrCssFile, которая принимает 2 строковых параметра, используя следующий код:

await JSRuntime.InvokeAsync<string>("loadJsOrCssFile", $"/brands/{_brand.BrandId}/brand{_brand.BrandId}_{_brand.CSSFileVersionNo}.css", "css");

Но я получаю ошибку (из Chrome консоли инструментов dev):

blazor.webassembly.js:1 WASM: System.ArgumentNullException: Value cannot be null.
h.printErr @ blazor.webassembly.js:1
12:37:36.127 blazor.webassembly.js:1 WASM: Parameter name: jsRuntime
h.printErr @ blazor.webassembly.js:1
12:37:36.127 blazor.webassembly.js:1 WASM:   at Microsoft.JSInterop.JSRuntimeExtensions.InvokeAsync[TValue] (Microsoft.JSInterop.IJSRuntime jsRuntime, System.String identifier, System.Object[] args) <0x281f210 + 0x00014> in <3eedf0ca90ca4e72bf6870618ca98c7c>:0 

1 Ответ

1 голос
/ 07 января 2020

Извините, это не имеет значения, теперь я решил это. Я делал это наверху класса (это обычный класс, а не внутри компонента):

[Inject]
IJSRuntime JSRuntime { get; set; }

Это работает, если я получаю JSRuntime через DI в конструкторе.

...