从 @ref 组件引用调用方法时,Blazor 绑定不起作用

问题描述 投票:0回答:1

我有一个简单的 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
不起作用。

更新:我正在寻求数据绑定或将值传递给子组件,我正在寻找调用先前创建的子组件方法,而不必担心组件是否会正确呈现自身。

c# razor binding blazor
1个回答
1
投票

我认为当你的组件像这样使用时,该组件不会重新渲染。也许添加一个带有

StateHasChanged
的方法并调用此方法可以完成这项工作?

© www.soinside.com 2019 - 2024. All rights reserved.