如何使用 Blazor 创建用于刷新当前页面的 MainLayout?

How to create a MainLayout for refreshing the current page using Blazor?

我的 MainLayout 包含一个水平菜单和一个位于屏幕顶部的按钮。该按钮会弹出一个模式供用户进行选择。关闭后我需要刷新当前页面,因为他们的选择会影响影响所有页面的关键状态。

我正在调用 this.StateHasChanged();在 MainLayout 页面中。这确实会导致其内容刷新。但是,它不会导致@Body 中包含的页面内容刷新。我看了很多,但不知道如何实现。

要么通过 CascadingValue 向下传递值,因为这会导致消费者在值更改时呈现 - 或者如果您依赖组件外部的状态(例如在服务中),那么您将需要在那里放一个当你的状态改变时触发的事件,你的消费组件将必须订阅并调用 InvokeAsync(StateHasChanged)