강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

eokhwa333님의 프로필 이미지
eokhwa333

작성한 질문수

Flutter 앱 개발 실전

강의 자료

제공해주신 flutter_design_system 라이브러리 질문입니다.

작성

·

9

0

공유주신 "flutter_design_system" 라이브러리리 잘사용하고 있습니다.

 

Navigator.pushNamed(context, RoutePath.search);


이런 식으로 페이지 이동을 하는데요.
.

didPopNext, didPushNext이 함수 들이 호출이 안되는데 혹시 직접 공유해주신 라이브러리 때문일까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. eokhwa333님.

Flutter에서 라우팅을 사용할 때, Navigator.pushNamed로 페이지 이동을 할 수 있습니다. 하지만 didPushNextdidPopNext가 호출되지 않는다는 것은 여러 가지 이유로 발생할 수 있으며, 단순히 라이브러리 때문이라고 단정하기는 어렵습니다. 다음 사항들을 확인해 보시는 것이 좋습니다:

  1. RouteObserver 사용 여부: didPopNextdidPushNext 같은 라이프사이클 메소드들은 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
    }
    
  2. MaterialApp 구성 확인: MaterialApp에서 navigatorObserversRouteObserver를 추가했는지 확인해 보세요.

    return MaterialApp(
      navigatorObservers: [routeObserver],
      // Other properties...
    );
    

관련하여 다음 유사 질문을 참고하시면 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

eokhwa333님의 프로필 이미지
eokhwa333

작성한 질문수

질문하기