请考虑以下场景:
我有一页三个组件:
-
InputComponent
-
ActivityListComponent
-
SummaryComponents
第一个组件包含一个以URL作为输入的表单。
当提交表单时,应用程序从这个URL(JSON)中获取内容并创建一个List。
第二个组件应该显示这个自定义对象的结果,该对象在表单中包含一个List,其中每个项都包含一个复选框,允许用户取消选择不需要的项。
当用户准备好并单击submit时,我将解析结果并生成一个输出文件。
第三个组件生成结果的摘要。
我正在努力了解如何改变ActivityListComponent的可见性,并在用户单击提交时从代码中传递自定义对象。
基本问题是:
我如何控制组件的可见性以及传入自定义对象?
最后我使用了Blazor事件。
// Child Object
public List<Cat> Cats { get; set; }
[Parameter] public EventCallback<List<Cat>> NewCatList { get; set; }
// Somewhere in the code I trigger the event
await NewCatList.InvokeAsync();
// Parent Object
<InputFormComponent NewCatList="@Method" />
@Code {
public void Method(List<Cat> Cats)
{
// Some code
}
}
这是一个更大的问题,因为我在子组件中使用了@bind-value而不是@bind-value,错误没有被正确处理。
我花了一点时间才弄明白。
吸取了很多教训:)