피드로 돌아가기
Dev.toFrontend
원문 읽기
@ComponentV2와 @CustomDialog 간 상태 관리 버전 불일치 해결
Passing parameters from a struct decorated with @ComponentV2 to a custom dialog decorated with @CustomDialog fails
AI 요약
Context
HarmonyOS 개발 환경에서 @ComponentV2의 @Local 상태 변수를 @CustomDialog 기반 컴포넌트로 전달하는 과정에서 런타임 에러 발생. 이는 V2 상태 관리 시스템과 V1 기반의 @CustomDialog 간 상호 운용성 결여로 인한 데이터 바인딩 실패가 핵심 원인임.
Technical Solution
- @CustomDialog 의존성을 제거하고 @ComponentV2 기반의 Page 구조로 전환
- Navigation 시스템의 NavDestination을 활용한 팝업 UI 구현
- NavDestinationMode.DIALOG 설정을 통한 기존 다이얼로그 형태의 사용자 경험 유지
- NavPathStack의 pushPathByName 메서드를 통한 부모-자식 간 파라미터 전달 체계 구축
- onReady 라이프사이클 내 context.pathInfo.param 접근을 통한 런타임 데이터 주입 및 @Local 변수 할당
- router_map.json 설정을 통한 컴포넌트 빌드 함수와 소스 파일의 명시적 매핑
실천 포인트
- @ComponentV2 사용 시 하위 컴포넌트의 상태 관리 데코레이터 버전 일치 여부 확인 - 다이얼로그 구현 시 @CustomDialog 대신 Navigation DIALOG 모드 검토 - API Version 19 및 HarmonyOS
5.
1.1 이상의 SDK 버전 준수 여부 체크 - routerMap 설정을 통한 컴포넌트 의존성 정의 및 경로 관리 적용