Есть ли способ обновить данные дочернего компонента после регулярного изменения данных в родительском компоненте? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть различные дочерние компоненты, которые динамически создаются в родительском компоненте.

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

У меня есть список данных, которые передаются этим дочерним компонентам. Эти данные регулярно обновляются в родительском компоненте. .

Я хочу обновить данные дочернего компонента, когда эти списки обновляются в родительском компоненте?

1 Ответ

0 голосов
/ 15 октября 2019

Предполагается, что вы используете сценарий, описанный в этой статье : Создайте свойство из данных, переданных в метод 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(); 
   }
}
...