从应用程序中的其他位置更新其他Blazor组件

时间:2019-07-04 10:46:24

标签: c# blazor blazor-server-side

请考虑一个具有动态导航(例如,奶酪类别列表)的场景。导航组件存在于布局中,该布局具有各种其他内容组件。其中之一允许用户更新所选奶酪类别的名称。但是...我们如何将其反映在导航组件上?如果将其视为一棵树,则必须(以代码形式)向上导航至布局,然后向下导航至导航组件,在该组件中可以更新状态(通过查询服务器或传递更新内容) )。

1 个答案:

答案 0 :(得分:1)

  

通常,参数流向下,即从父级流到   子,而不是其他方向,因为渲染流程进入   那个方向。这就是为什么无法传递参数的原因   上游(例如布局),因为那时没有单个   定义的渲染顺序。

SteveSanderson

通常来说,您无法将数据从嵌入式组件传递到MainLayout。

但是(您的问题很模糊,应该对组件进行更详细的描述),您可以定义一个AppState服务,该服务可以处理所涉及组件的状态,并允许从这些组件访问状态数据

请参阅由史蒂夫·桑德森(Steve Sanderson)编写的此示例,如何实现AppState服务。它还演示了我接下来要说的话:https://github.com/aspnet/samples/tree/master/samples/aspnetcore/blazor

将数据从子组件传递到父组件的另一种方法是,在父组件中定义一个可能具有参数的方法,并通过事件处理程序从子组件中调用该方法。

如果您向我们提供组件的轮廓,则可以提供更具体的答案...

希望这对您有帮助...