I am trying to render component dynamically based on string List.
Let's List values which contains Component Name.
For example:
List<string> componentName = new List<string>() { "SurveyPrompt", "FetchData","Counter" };
Based on above list my component should render.
In Blazor, we have DynamicComponent in which it will generate Dynamic component based on component Type List. Below code is for reference.
Blazor page
<div class="container-fluid">
<div class="row" >
<div class="col-md-12">
<div class="d-flex flex-wrap" style="height: 200px;">
@foreach (var component in components)
{
<DynamicComponent Type=@component.type Parameters=@component.parameters />
}
</div>
</div>
</div>
</div>
Based on components list it going to render components
@code {
public List<(Type type, Dictionary<string, object> parameters)> components = new List<(Type type, Dictionary<string, object> parameters)>()
{ (typeof(SurveyPrompt), new Dictionary<string, object>() { }) };
}
Here, how can I pass component name as string and convert it into Blazor Component?