Blazor 서버 : 다시 렌더링 된 UI 수동 새로 고침

Vernou

카운터 예에서는 카운터를 증가시키는 타이머를 추가합니다.

@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    protected override void OnInitialized()
    {
        var timer = new System.Timers.Timer();
        timer.Interval = TimeSpan.FromSeconds(1).TotalMilliseconds;
        timer.Elapsed += (s, e) =>
        {
            IncrementCount();
            StateHasChanged();
        };
        timer.Start();
    }

    private void IncrementCount()
    {
        currentCount++;
    }
}

이 코드는 Blazor WebAssembly에서 작동하며 카운터가 증가하고 UI에 새 값이 표시됩니다. 그러나 Blazor 서버를 사용하면 카운터가 증가하지만 (디버거에서 확인 됨) UI가 새로 고쳐지지 않습니다.

Blazor 서버로 UI를 수동으로 새로 고치는 방법은 무엇입니까?

enet

사용 가능한 단일 JavaScript UI 스레드에서 실행되는 Blazor WebAssembly 앱과 달리 Blazor 서버 앱은 동일한 응용 프로그램에서 둘 이상의 스레드를 사용할 수 있으며 그 결과 동기화 컨텍스트에 문제가 발생합니다.

필요한 것은 동기화 컨텍스트를 조정하는 것입니다. 코드 측면에서 다음과 같이해야합니다.

InvokeAsync(() => StateHasChanged()); instead of merely calling `StateHasChanged();`

코드 디자인에 따라 종종이 예외가 발생합니다.

System.InvalidOperationException : '현재 스레드가 렌더러의 동기화 컨텍스트와 연결되어 있지 않습니다. Invoke () 또는 InvokeAsync ()를 사용하여 렌더링을 트리거하거나 렌더링 중에 액세스 된 상태를 수정할 때 렌더러의 동기화 컨텍스트로 실행을 전환합니다. '

도움이 되었기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

제출 버튼을 클릭하면 UI 새로 고침 / 다시 렌더링

분류에서Dev

Vuetify 툴팁 새로 고침 / 호버시 다시 렌더링

분류에서Dev

동일한 브라우저 내에서 새로 고침시 페이지가 다르게 렌더링 됨

분류에서Dev

UI에서 동적으로 렌더링 된 요소 재배치

분류에서Dev

highcharts는 ajax 새로 고침에서 검정색을 렌더링합니다.

분류에서Dev

CK Finder-서버 찾아보기 버튼에 "폴더를 찾을 수 없습니다. 새로 고침하고 다시 시도하십시오." 오류

분류에서Dev

Blazor 앱에서 렌더링 모드가 "서버"로 설정된 경우 요청 된 경로를 가져올 수 있습니까?

분류에서Dev

OpenLayers 6 맵을 새로 고침 / 다시 렌더링하는 방법

분류에서Dev

will_paginate 페이지 매김은 AJAX 새로 고침에서 두 번 렌더링됩니다.

분류에서Dev

.js 파일이 새로 렌더링 된 형식에서 작동하지 않습니다.

분류에서Dev

렌더링 된 테이블을 무작위로 복사하는 기능이 작동을 멈추고 페이지 새로 고침으로 문제 해결

분류에서Dev

새로 생성 된 패키지는 수동 새로 고침 후에 만 표시됩니다.

분류에서Dev

동일한 서버의 다른 페이지에서 수동으로 페이지 새로 고침

분류에서Dev

PHP 헤더 새로 고침이 크롬에서 작동하지 않습니다.

분류에서Dev

자동 새로 고침으로 설정되어 있지만 포함 된 보고서가 기본 보고서에서 새로 고쳐지지 않습니다.

분류에서Dev

UI에서 새로 고침되지 않는 드롭 다운 값을 동적으로 설정

분류에서Dev

Firebase Auth 토큰 새로 고침을 서버 측 렌더링으로 조정하는 방법

분류에서Dev

http.jsonp는 수동 페이지 새로 고침까지 캐시 된 데이터로 돌아옵니다.

분류에서Dev

디버그 및 게시 된 버전에서 십진수 렌더링이 동일하지 않음

분류에서Dev

렌더링 된 HTML 서명을 Gmail로 복사 할 수 없습니다.

분류에서Dev

fragmentActivity에서 조각 UI 새로 고침

분류에서Dev

서버 렌더링 nextjs 아폴로 앱의 구성 요소에서 업데이트 된 캐시를 가져올 수 없습니다.

분류에서Dev

자동 새로 고침 div jQuery + 진행률 표시 줄 로더

분류에서Dev

자동 새로 고침 div jQuery + 진행률 표시 줄 로더

분류에서Dev

Angularjs ui-router- 페이지 새로 고침에서 404를 찾을 수 없습니다.

분류에서Dev

angularjs : 디렉티브 템플릿 강제 다시 렌더링 / 전체 새로 고침

분류에서Dev

링크 버튼 클릭시 페이지 새로 고침 방지

분류에서Dev

Blazor WebAssembly : 동일한 구성 요소 렌더링에 대한 다중 경로

분류에서Dev

React : 반복 된 구성 요소에서 동적으로 공용 폴더의 이미지를 렌더링하려고합니다.

Related 관련 기사

  1. 1

    제출 버튼을 클릭하면 UI 새로 고침 / 다시 렌더링

  2. 2

    Vuetify 툴팁 새로 고침 / 호버시 다시 렌더링

  3. 3

    동일한 브라우저 내에서 새로 고침시 페이지가 다르게 렌더링 됨

  4. 4

    UI에서 동적으로 렌더링 된 요소 재배치

  5. 5

    highcharts는 ajax 새로 고침에서 검정색을 렌더링합니다.

  6. 6

    CK Finder-서버 찾아보기 버튼에 "폴더를 찾을 수 없습니다. 새로 고침하고 다시 시도하십시오." 오류

  7. 7

    Blazor 앱에서 렌더링 모드가 "서버"로 설정된 경우 요청 된 경로를 가져올 수 있습니까?

  8. 8

    OpenLayers 6 맵을 새로 고침 / 다시 렌더링하는 방법

  9. 9

    will_paginate 페이지 매김은 AJAX 새로 고침에서 두 번 렌더링됩니다.

  10. 10

    .js 파일이 새로 렌더링 된 형식에서 작동하지 않습니다.

  11. 11

    렌더링 된 테이블을 무작위로 복사하는 기능이 작동을 멈추고 페이지 새로 고침으로 문제 해결

  12. 12

    새로 생성 된 패키지는 수동 새로 고침 후에 만 표시됩니다.

  13. 13

    동일한 서버의 다른 페이지에서 수동으로 페이지 새로 고침

  14. 14

    PHP 헤더 새로 고침이 크롬에서 작동하지 않습니다.

  15. 15

    자동 새로 고침으로 설정되어 있지만 포함 된 보고서가 기본 보고서에서 새로 고쳐지지 않습니다.

  16. 16

    UI에서 새로 고침되지 않는 드롭 다운 값을 동적으로 설정

  17. 17

    Firebase Auth 토큰 새로 고침을 서버 측 렌더링으로 조정하는 방법

  18. 18

    http.jsonp는 수동 페이지 새로 고침까지 캐시 된 데이터로 돌아옵니다.

  19. 19

    디버그 및 게시 된 버전에서 십진수 렌더링이 동일하지 않음

  20. 20

    렌더링 된 HTML 서명을 Gmail로 복사 할 수 없습니다.

  21. 21

    fragmentActivity에서 조각 UI 새로 고침

  22. 22

    서버 렌더링 nextjs 아폴로 앱의 구성 요소에서 업데이트 된 캐시를 가져올 수 없습니다.

  23. 23

    자동 새로 고침 div jQuery + 진행률 표시 줄 로더

  24. 24

    자동 새로 고침 div jQuery + 진행률 표시 줄 로더

  25. 25

    Angularjs ui-router- 페이지 새로 고침에서 404를 찾을 수 없습니다.

  26. 26

    angularjs : 디렉티브 템플릿 강제 다시 렌더링 / 전체 새로 고침

  27. 27

    링크 버튼 클릭시 페이지 새로 고침 방지

  28. 28

    Blazor WebAssembly : 동일한 구성 요소 렌더링에 대한 다중 경로

  29. 29

    React : 반복 된 구성 요소에서 동적으로 공용 폴더의 이미지를 렌더링하려고합니다.

뜨겁다태그

보관