【发布时间】:2022-12-22 22:22:12
【问题描述】:
我在将一些旧代码迁移到 Blazor 时遇到了一个独特的情况。例如,以下代码将包含在“ComponentTest.razor”页面中。我想通过 ComponentTest.razor 中的代码访问 ParentComponent 及其参数以及 ChildComponent 及其参数。在这种情况下,ParentComponent 由包含页面“ComponentTest.razor”调用,但 ChildComponents 不可访问,甚至似乎不可访问。
<ParentComponent PParam1="pValue1" PParam2="pValue2" PParam3="pValue3">
<ChildComponent CParm1="cvalue1" CParm2="cvalue1"/>
<ChildComponent CParm1="cvalue2" CParm2="cvalue2"/>
<ChildComponent CParm1="cvalue3" CParm2="cvalue3"/>
<ChildComponent CParm1="cvalue4" CParm2="cvalue4"/>
</ParentComponent>
是的,通常 ChildComponent 会被放置在 ParentComponent.razor 文件中,这工作正常,但那不是我遇到的情况。似乎有一种方法可以使用 RenderTreeBuilder 来访问子组件,但我不知道如何调用它们,因此它们的 OnInitialized 会执行并设置参数。
【问题讨论】:
-
在我回答之前——
ChildComponent对象的数量是设置为四个,还是来自可变长度的数据集?我会以不同的方式对待这些情况。您真的需要使用内部标记来定义此页面上的ChildComponent对象吗? -
ChildComponent 的数量会有所不同。我确实需要使用内部标记来获取在 ChildComponent 上指定的参数。
-
“获取参数”是什么意思?价值观从何而来?如果它们来自数据列表,您应该将列表传递给父级,并循环访问那里的数据,而不是像这样使用标记。
标签: blazor blazor-webassembly asp.net-blazor