| 1234567891011121314151617181920212223242526272829303132333435 |
- @inject UserDataProvider UserDataProvider
- @implements IDisposable
-
- @if (state == null) {
- <p>loading...</p>
- } else {
- <CascadingValue Value="@state" IsFixed="false">@ChildContent</CascadingValue>
- }
-
- @code{
- private UserData state = null;
-
- [Parameter]
- public RenderFragment ChildContent { get; set; }
-
- protected override async Task OnInitializedAsync() {
- UserDataProvider.Changed += UserDataChanged;
- await Refresh();
- }
-
- public void Dispose() {
- UserDataProvider.Changed -= UserDataChanged;
- }
-
- private async void UserDataChanged(object sender, EventArgs e) {
- await InvokeAsync(async () => {
- await Refresh();
- StateHasChanged();
- });
- }
-
- private async Task Refresh() {
- state = await UserDataProvider.Get();
- }
- }
|