簡體   English   中英

如何從 blazor 中的另一個組件啟動方法?

[英]How to initiate an method from another component in blazor?

所以我所擁有的是我在 blazor 服務器中編寫的票務處理系統。 所以我在首頁列出了所有的門票和一些統計數據,然后我在首頁上有一個按鈕,它打開一個模式,我可以在其中編輯和創建新的門票。

所以我想做的是,在創建票證或更新票證后,我想立即運行我在首頁上的方法,該方法將再次加載所有數據。 因此,當您退出模式時,新值將在那里。 目前我必須刷新頁面才能看到新值。

我怎樣才能做到這一點? 我不能在子組件等上使用@ref,因為此模式組件位於 mainLayout 文件中,而不是方法所在的特定頁面文件中。

我試過什么:

  • 在子組件上使用 @ref
  • 經典的 .net 與“Page page = new Page()”,然后是“page.LoadData()”,語法明智,但它在調用該方法時給了我一個 nullreferenceobject。

那么關於如何實現這一目標的任何提示? 或有關我如何以其他方式做到這一點的任何提示? 我不想刷新頁面來查看更改。

謝謝

您可以嘗試將 Action 作為參數傳遞給您的模式。

就像是:

主頁.razor

<Modal OnSubmit="@HandleTicket" />

模態.razor.cs

public partial class Modal
{
[Parameter]
Action<Ticket> OnSubmit {get;set;}

private Ticket ticket;

private void Submit() // Gets called when you close the modal
{
OnSubmit?.Invoke(ticket);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM