PWA Fundvelo der Caritas.
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

UserDataComponent.razor 861B

1234567891011121314151617181920212223242526272829303132333435
  1. @inject UserDataProvider UserDataProvider
  2. @implements IDisposable
  3. @if (state == null) {
  4. <p>loading...</p>
  5. } else {
  6. <CascadingValue Value="@state" IsFixed="false">@ChildContent</CascadingValue>
  7. }
  8. @code{
  9. private UserData state = null;
  10. [Parameter]
  11. public RenderFragment ChildContent { get; set; }
  12. protected override async Task OnInitializedAsync() {
  13. UserDataProvider.Changed += UserDataChanged;
  14. await Refresh();
  15. }
  16. public void Dispose() {
  17. UserDataProvider.Changed -= UserDataChanged;
  18. }
  19. private async void UserDataChanged(object sender, EventArgs e) {
  20. await InvokeAsync(async () => {
  21. await Refresh();
  22. StateHasChanged();
  23. });
  24. }
  25. private async Task Refresh() {
  26. state = await UserDataProvider.Get();
  27. }
  28. }