簡體   English   中英

從@ref 組件引用調用方法時,Blazor 綁定不起作用

[英]Blazor binding is not working when calling a method from @ref component reference

我有一個簡單的 Blazor 組件,它是已綁定到屬性的文本框:

<input @bind="TheValue" />

@code {
    public string TheValue { get; set; } = "abc";

    public void FillTextBox(string s)
    {
        TheValue = s;
        Console.WriteLine("TheValue is = " + TheValue);
    }
}

在我使用組件的主頁中,我有以下代碼:

<MyTextbox @ref="myTextbox" /></MyTextbox>

<button @onclick="@(()=>myTextbox.FillTextBox("123"))">Fill</button>

@code {
     MyTextbox myTextbox;
}

當組件被渲染時,它的默認值是“abc”,如果我在組件內部調用FillTextBox ,它也可以正常工作,但是當我點擊按鈕時,盡管FillTextBox將被執行(並在控制台中顯示值)它確實不改變輸入元素的值。 所以總結一下,當我調用更改綁定變量的方法時, @bind不起作用。

更新:我正在尋找數據綁定或將值傳遞給子組件,我正在尋找調用先前創建的子組件方法,而不必擔心該組件是否會正確呈現自身。

我認為當您的組件像這樣使用時,組件不會重新渲染。 也許添加一個帶有 StateHasChanged 的​​方法並調用這個方法來完成這項工作?

暫無
暫無

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

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