繁体   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