如何解决从@ref组件引用中调用方法时,Blazor绑定不起作用
我有一个简单的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的方法,然后调用该方法就可以了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。