定期更改父组件中的数据后,是否可以更新子组件数据?

时间:2019-10-15 03:54:53

标签: blazor blazor-server-side

我有各种子组件,它们是在父组件中动态创建的。

RenderFragment CreateChildComponent(long selectedcar) => builder =>
{
    builder.OpenComponent(0, typeof(ChildComponent));
    builder.AddAttribute(1, "Data", GetData(selecteccar));
    builder.CloseComponent();
};

我有传递到这些子组件的数据列表。这些数据在父组件上定期更新。

我想在父组件中更新这些列表时更新子组件数据吗?

1 个答案:

答案 0 :(得分:0)

假设您使用的是this article中描述的那种情况:从传递给CreateChildComponent方法的数据中创建一个属性,然后调用StateHasChanged()。像这样:

@page "/BuiltContent"

<h1>Build a component</h1>

@CustomRender

@code {
   private RenderFragment CustomRender { get; set; }
   public long selectedcar;

   RenderFragment CreateChildComponent() => builder =>
   {
       builder.OpenComponent(0, typeof(ChildComponent));
       builder.AddAttribute(1, "Data", GetData(selectedcar));
       builder.CloseComponent();
   };}

   void SomeInitMethod() {
       childFragment = CreateChildComponent();
   }

   void MyUpdateMethod() {
      // "list gets updated in parent component..."
      this.selectedcar = ...;
      StateHasChanged(); 
   }
}