【问题标题】:Proper initialization of a Blazor instance created by JavaScript正确初始化由 JavaScript 创建的 Blazor 实例
【发布时间】:2021-05-24 01:32:13
【问题描述】:

我在 Blazor WASM 工作。我对在 Blazor 中创建新选项卡/窗口以及新选项卡的状态有一些疑问。

我通过 JSInterop 调用创建了一个新选项卡/窗口:

window.open('\anotherpage', windowName);

我希望新窗口是 Blazor WASM 沙盒的新实例。我注意到新实例似乎没有正确初始化。例如,如果我尝试访问在原始版本中有效的服务:

[Inject]
public SomeService someService { get; set; } //Singleton service started in program.cs

在原始版本中这显然有效,但在新版本中我得到一个访问 SomeService 的空异常。

这是否意味着新实例没有像通常那样初始化?我误解了这里发生的事情吗?有没有办法正确初始化服务,还是我只需要构建我需要的任何东西?

谢谢

【问题讨论】:

  • 这是一个拼写错误:[Inject] public SomeService {get;set;}
  • 我真的很惊讶它除了打开一个新的 空白 窗口/选项卡之外还能做什么。从文档中,“如果将空字符串 ("") 指定为 url,则会在目标浏览上下文中打开一个空白页面。”

标签: javascript blazor blazor-webassembly


【解决方案1】:

似乎程序中的所有服务都是可用的,并且在 WASM 的所有重复实例中都进行了相同的初始化。我只是在那个特定页面上遇到了一个初始化错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 2017-10-21
    • 2013-10-18
    相关资源
    最近更新 更多