我使用 dotnet 6 和 Visual Studio 2022 我想將 IJSRuntime 注入我的頁面和組件,但 IJSRuntime 始終為空
這是使用模態組件的頁面父級
@page "/adminGroupRole"
<h3>AdminGroupRolePage</h3>
<button class="btn btn-primary" @onclick=modalAddNewgroup.OpenModal>Add</button>
<ModalAddNewGroupRole @ref=modalAddNewgroup/>
和頁面父級背后的代碼
public partial class AdminGroupRolePage
{
[Inject] public IJSRuntime JS { get; set; }
[Inject] public FinancialPortalDBAuth db { get; set; }
ModalAddNewGroupRole modalAddNewgroup=new();
}
我檢查默認索引中的注入是否有效......為什么?我的代碼是 razor blazor 頁面后面的代碼 這是我的代碼
public partial class ModalAddNewGroupRole
{
[Inject] public SweetAlert2Service SweetAlert2Service { get; set; }
[Inject] public FinancialPortalDBAuth db { get; set; }
[Inject] public IJSRuntime JS { get; set; }
DIMAuthGroup authGroupForAdd = new DIMAuthGroup();
string ID = Guid.NewGuid().ToString();
public async Task OpenModal()
{
authGroupForAdd = new();
await JS.InvokeVoidAsync("OpenModal", ID);
}
}

index.razor 中的精確注入效果完美
在父母身上注入不起作用
uj5u.com熱心網友回復:
這依賴于屬性注入。這是創建 ModalAddNewGroupRole 程序中的一個積極步驟。
那么如何獲得呼叫 OpenModal() 的實體呢?
您需要一個具有<ModalAddNewGroupRole /> .
做你自己var modalAddNewGroupRole = new ModalAddNewGroupRole();不會削減它。
uj5u.com熱心網友回復:
我的錯誤是我在 razor 頁面中呼叫 OpenModal 方法,并且 blazor 引擎為 @ref=modalAddNewgroup 拋出 null 例外,我強制使用 new ModalAddNewGroupRole ...這個錯誤的 new ModalAddNewGroupRole() break DI ...
我在父頁面的方法中移動了打開模式,然后單擊呼叫打開模式并作為@Henk Holterman Sayed 洗掉 new ModalAddNewGroupRole() 并且所有人都認為沒問題...
我的錯誤代碼:
@page "/adminGroupRole"
<h3>AdminGroupRolePage</h3>
<button class="btn btn-primary" @onclick=modalAddNewgroup.OpenModal>Add</button>
<ModalAddNewGroupRole @ref=modalAddNewgroup/>
代碼背后:
public partial class AdminGroupRolePage
{
[Inject] public IJSRuntime JS { get; set; }
[Inject] public FinancialPortalDBAuth db { get; set; }
ModalAddNewGroupRole modalAddNewgroup=new();
}
我的正確代碼:
@page "/adminGroupRole"
<h3>AdminGroupRolePage</h3>
<button class="btn btn-primary" @onclick=OpenModalAddNewGroup>Add</button>
<ModalAddNewGroupRole @ref=modalAddNewgroup/>
代碼背后:
public partial class AdminGroupRolePage
{
[Inject] protected IJSRuntime JS { get; set; }
[Inject] protected FinancialPortalDBAuth db { get; set; }
ModalAddNewGroupRole modalAddNewgroup;
async Task OpenModalAddNewGroup()
{
await modalAddNewgroup.OpenModal();
}
}
uj5u.com熱心網友回復:
嘗試在后面的代碼中使用它
using Microsoft.JSInterop;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/423030.html
標籤:
上一篇:從深層json子過濾資料
