【问题标题】:Child controls in asp.net Blazor not refreshing. StateHasChanged() not workingasp.net Blazor 中的子控件不刷新。 StateHasChanged() 不工作
【发布时间】:2020-07-30 03:32:33
【问题描述】:

此问题请参考以下https://github.com/CD1010/BlazorWizard.git。示例位于 StepActivations 分支

我有一个名为 DemoWizard 的页面,其中包含一个 3 步向导。当我单击“切换启用”按钮时,第二步和第三步链接应该进入启用或禁用状态。但是,似乎第一次需要单击 2 次才能关闭标题,并且状态始终处于落后状态。
因此,StateHasChanged() 似乎没有正确刷新子状态。
请注意,refresh() 方法试图至少让 step2 正确刷新,但无济于事。

知道为什么吗? 切换的点击处理程序如下。

void OnClick()
{
    step2Enabled = !step2Enabled;
    step3Enabled = !step3Enabled;



    StateHasChanged();
    Step2.Refresh();
}

【问题讨论】:

    标签: asp.net razor-pages blazor-server-side asp.net-blazor


    【解决方案1】:

    您的代码并未完全按照宣传的方式显示,但我认为您需要做的是向 Blazorize CheckEdit 组件添加一个事件回调:

    <Blazorize.CheckEdit @bind-Checked="@Parent.IsValid" CheckedChanged="@VerifyEnabledTabs">Check Me</Blazorise.CheckEdit>
    

    其中VerifyEnabledTabs 是顶级Wizard 的一种方法,可以评估您的位置以及已完成/已填充/已检查/任何内容,以允许某些链接处于活动状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2021-09-03
      • 2021-03-21
      • 2020-04-22
      • 2020-12-20
      • 1970-01-01
      相关资源
      最近更新 更多