输入文本字段上的Blazor子级到父级双向绑定

问题描述

我试图找到一种在不调用父组件之类的方法的情况下将值从子组件传递给父组件的方法

<child ValChanged="DoSomethingMethod"/>

并最终找到方法
孩子:

    <div class="form-group">
    <label>@Label</label>
    <input class="form-control" @bind="@Val" @bind:event="oninput" />
</div>

    @code{
        [Parameter]
        public string Label { get; set; }
        [Parameter]
        public EventCallback<string> ValChanged { get; set; }
        private string val;
        [Parameter]
        public string Val
        {
            get => val;
            set
            {
                if (val!=value)
                {
                    val = value;
                    ValChanged.InvokeAsync(val);
                }
            }
        }
    }

父母:

    @page "/"
<div class="row">
    <div class="col">
        <Inp Label="@Label" @bind-Val="@Result"></Inp>
    </div>
    <div class="col">
        <Res Description="@Label" Val="@Result"></Res>
    </div>
</div>



      @code{
    public string Label {get;set;}="Simple input";
    public string Result {get;set;}
}

这可行,我很高兴,但是当从子组件中删除if(val!=value){}条条件并仅保留set {val=value;ValChanged.InvokeAsync(val);}时 它停止工作,如果我更改输入字段应用程序上的值,将冻结。 那么,谁能解释原因? 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)