인프런 커뮤니티 질문&답변
제공해주신 flutter_design_system 라이브러리 질문입니다.
해결된 질문
작성
·
33
1
공유주신 "flutter_design_system" 라이브러리리 잘사용하고 있습니다.
Navigator.pushNamed(context, RoutePath.search);
이런 식으로 페이지 이동을 하는데요.
.
didPopNext, didPushNext이 함수 들이 호출이 안되는데 혹시 직접 공유해주신 라이브러리 때문일까요?
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다. eokhwa333님.
Flutter에서 라우팅을 사용할 때, Navigator.pushNamed로 페이지 이동을 할 수 있습니다. 하지만 didPushNext나 didPopNext가 호출되지 않는다는 것은 여러 가지 이유로 발생할 수 있으며, 단순히 라이브러리 때문이라고 단정하기는 어렵습니다. 다음 사항들을 확인해 보시는 것이 좋습니다:
RouteObserver 사용 여부:
didPopNext나didPushNext같은 라이프사이클 메소드들은RouteObserver를 사용하는 경우에만 동작합니다. 당신의 위젯이RouteAware믹스를 사용하는 경우가 아닐 수 있습니다. 아래와 같이RouteObserver와 함께RouteAware를 사용하여 문제를 해결할 수 있습니다.final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>(); class YourWidget extends StatefulWidget with RouteAware { @override void didPopNext() { // This function will be called when you pop back into this route } @override void didPushNext() { // This function will be called when you push a new route above this one } } @override void didChangeAppLifecycleState(AppLifecycleState state) { // Your lifecycle code here }MaterialApp 구성 확인:
MaterialApp에서navigatorObservers에RouteObserver를 추가했는지 확인해 보세요.return MaterialApp( navigatorObservers: [routeObserver], // Other properties... );
관련하여 다음 유사 질문을 참고하시면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





