【发布时间】:2019-11-15 02:20:41
【问题描述】:
假设您有一个动态导航(例如奶酪类别列表)。导航组件存在于布局中,该布局具有各种其他内容组件。其中之一允许用户更新所选奶酪类别的名称。但是......我们如何将其反映在导航组件上?如果有人将其视为一棵树,则您必须(在代码中)向上导航到布局,然后向下导航到可以更新状态的导航组件(通过查询服务器或传递更新内容)。
【问题讨论】:
标签: c# blazor blazor-server-side
假设您有一个动态导航(例如奶酪类别列表)。导航组件存在于布局中,该布局具有各种其他内容组件。其中之一允许用户更新所选奶酪类别的名称。但是......我们如何将其反映在导航组件上?如果有人将其视为一棵树,则您必须(在代码中)向上导航到布局,然后向下导航到可以更新状态的导航组件(通过查询服务器或传递更新内容)。
【问题讨论】:
标签: c# blazor blazor-server-side
一般来说,参数流是向下的,即从父级到 孩子,而不是另一个方向,因为渲染流进入 那个方向。这就是为什么没有办法传递参数的原因 上游(例如,布局),因为那时没有单一的 定义的渲染顺序。
史蒂夫·桑德森
一般来说,您不能将数据从嵌入式组件传递到 MainLayout。
但是(您的问题很模糊,您应该对组件进行更详细的描述),您可以定义一个 AppState 服务来处理所涉及组件的状态,并允许访问这些组件的状态数据.
查看这个由 Steve Sanderson 编写的示例如何实现 AppState 服务。它还演示了我接下来要说的内容:https://github.com/aspnet/samples/tree/master/samples/aspnetcore/blazor
另一种将数据从子组件传递到父组件的方法是在父组件中定义一个可能有参数的方法,并通过事件处理程序从子组件调用。
如果您向我们提供组件的轮廓,可以提供更具体的答案...
希望这会有所帮助...
【讨论】: