이전에도 비슷한 글을 올린 적이 있었는데…
.NET 7.0에서 해도 같은 결과가 나오네요.
브라우저에서 새로고침 버튼 또는 F5 키를 누르면 OnParameterSet 이벤트가 2번 호출되는 문제입니다…
@page "/counter"
@code {
[Parameter]
public int Test { get; set; }
protected override void OnParametersSet()
{
// 두번째 호출될 때 Test값이 0으로 초기화되어 있음..
Test = 1;
}
}
필드에서는 어떻게 대응하고 계신지 궁금합니다…
아니면… 그냥 냅두시나요?!
1 Like
자답합니다…
1회만 로드되도록 하기 위해서는 컴포넌트의 render-mode를 Server로 바꾸는 방법이 있는데,
제가 잘못 수정했습니다.
_Host.cshtml에 정의된 app타입의 render-mode를 수정해야 하는데…
<component type="typeof(App)" render-mode="Server" />
HeadOutlet을 수정했더군요…
<component type="typeof(HeadOutlet)" render-mode="Server" />
결론
<component type="typeof(App)" render-mode="ServerPrerendered" />
// 이 부분을 아래와 같이 변경..
<component type="typeof(App)" render-mode="Server" />
5 Likes
저도 서버만 사용하는데요.
블레이저 버전에 따라 두 번 호출에서 한번 호출로 변경되었던 것 같습니다.
블레이저 강좌들 중 저 부분을 업데이트 하지 않아 두번 호출하는 것으로 component life-time 을 설명하는 것들이 아직도 꽤 있더군요.
그게 언제부터이고, 어떻게 제어하는 지 한번 정리할라 그랬는데…
떡 본 김에 제사 지낸다고… 한 번 정리해주심이… ^^
4 Likes