【发布时间】:2021-07-04 04:16:46
【问题描述】:
我希望有人可以帮助我。我正在尝试学习 Blazor,并且正在创建一个示例网站来创建购物清单。我在更新列表项时遇到问题,因为我无法将项目从子组件传递回父组件,然后再传递给 API 调用。通过更新按钮,我可以点击 UpdateItem 方法,但我不确定如何从三个输入中传递绑定的项目。
<ListTemplate Loader="@GetShopping" ListGroupClass="orders-list">
<Loading>Loading...</Loading>
<Empty>Empty.......</Empty>
<Item Context="item">
<input @bind="item.Id" />
<input type="checkbox" @bind="item.IsDone" />
<input @bind="item.Item" />
<button @onclick="UpdateItem">Update</button>
</Item>
<AddNew>
<input placeholder="Something todo" @bind="newToDo" />
<button @onclick="AddTodo">Add Todo</button>
</AddNew>
</ListTemplate>
ListTemplate 类 @typeparam TItem
@if (items == null)
{
@Loading
}
else if (!items.Any())
{
@Empty
}
else
{
<div class="list-group @ListGroupClass">
@foreach (var item in items)
{
<div class="list-group-item">
@Item(item)
</div>
}
@AddNew
</div>}
@code
{
IEnumerable<TItem> items;
[Parameter] public Func<Task<IEnumerable<TItem>>> Loader { get; set; }
[Parameter] public RenderFragment Loading { get; set; }
[Parameter] public RenderFragment Empty { get; set; }
[Parameter] public RenderFragment AddNew { get; set; }
[Parameter] public RenderFragment<TItem> Item { get; set; }
[Parameter] public string ListGroupClass { get; set; }
protected override async Task OnParametersSetAsync()
{
items = await Loader();
}
}
【问题讨论】:
-
欢迎...请务必阅读:stackoverflow.com/help/someone-answers