Как я могу передать список <string>в качестве параметра дочернему компоненту в Blazor? - PullRequest
1 голос
/ 26 января 2020

Вот пример того, что я хотел бы сделать:

Родительский компонент

<MyChildComponent ParamList="{hello, world, this is great}"/>

Дочерний компонент

<ol>
    @foreach(string myParam in ParamList)
    {
        <li>@myParam</li>
    }
</ol>

@code {
[Parameter]
public List<string> ParamList {get;set;}
}

Ожидаемый результат

1. Hello
2. World
3. this is great

Я чувствую, что делаю что-то не так, так как я не могу найти что-либо в блаженных документах об этом. Я не имею в виду брызги.

Ответы [ 2 ]

3 голосов
/ 26 января 2020

Вы можете сделать это различными способами. Это один:

MyChildComponent.razor

<ol>
@foreach (string myParam in ParamList)
{
    <li>@myParam</li>
}
</ol>

@code {
   [Parameter]
   public IReadOnlyList<string> ParamList { get; set; }
}

Использование

<MyChildComponent ParamList="list" />

@code{

List<string> list =  new List<string> {"hello", "world", "Angular is great"};
} 
1 голос
/ 26 января 2020

Это зависит от того, какую нотацию вы предпочитаете. Если вы хотите сохранить чистую сторону использования, вы можете использовать простую строку и обработать ее внутри компонента:

<MyChildComponent ParamList="hello, world, this is great"/>

...

<ol>
    @foreach(string myParam in ParamList.Split(',') )
    {
        <li>@myParam</li>
    }
</ol>

, а параметр является простым string

@code {
[Parameter]
public string ParamList {get;set;}
}
...