작성
·
8
0
공유주신 "flutter_design_system" 라이브러리리 잘사용하고 있습니다.
Navigator.pushNamed(context, RoutePath.search);
이런 식으로 페이지 이동을 하는데요.
.
didPopNext, didPushNext이 함수 들이 호출이 안되는데 혹시 직접 공유해주신 라이브러리 때문일까요?
답변 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...
);
관련하여 다음 유사 질문을 참고하시면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.