Blazor Textarea 更新变量更改

Zue*_*ndi 3 c# blazor

我希望文本区域始终显示变量的值。但只有当我单击按钮时它才会更新。每次变量更改时我可以做什么来更新文本区域?

<button class="btn btn-primary" @onclick="Test">Test</button>
<textarea  type="text" name="configJson" id="configJson"  value="@inputString" rows="20" cols="50" />
@code {
private string inputString;
    private void Test()
    {
        inputString = inputString;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有不断更改变量的代码,但它不会更新文本区域。仅当我单击按钮时文本区域才会更新。我究竟做错了什么?提前致谢!

Har*_*rry 5

你需要的是类StateHasChanged()的方法ComponentBase。这告诉 Blazor 数据绑定(包括一个方向)需要更新。顺便说一句,为什么要使用textarea元素的“value”属性?您应该设置其内容。它不是input。请参阅下面的示例:

@page "/"

<textarea>
  @Text
</textarea>

@code {

    public string Text { get; set; }
    int Counter { get; set; }

    protected override void OnInitialized() {
        base.OnInitialized();
        var timer = new System.Timers.Timer(1000);
        timer.Elapsed += (s, e) => {
            Counter++;
            InvokeAsync(() => {
                Text = $"Tick {Counter}";
                StateHasChanged();
            });
        };
        timer.Start();
    }

}
Run Code Online (Sandbox Code Playgroud)