>

이것이 명백하다면 용서하기 위해 Flutter를 처음 접했지만 문서를 읽고 여러 가지 Navigator 옵션을 시도했지만 원하는대로 작동하지 않습니다. 문제 세트 : 로그인/권한/등록 프로세스를 처리하는 복잡한 (잘, 반 복잡한) 일련의 화면 등이 있습니다. 이 경로 스택에서 3 또는 4 수준으로 내려갈 수 있습니다. 걱정하지 않아도됩니다.

문제는 몇 가지 다른 경로에서 성공적인 로그인 이벤트를 받고 "홈"페이지로 이동하려고 할 때 발생합니다. 일단 우리가 루트 트리의 새로운 "루트"가되어야하는 홈 페이지에 있으면 (올바른 용어가 아니라고 생각하지만 아이디어는 확실하다고 생각합니다).

따라서 1/2/3 또는 4 레벨을 낮출 수 있고 전체 스택 (전환 이벤트와 함께)을 "팝"하고 교체하여 새로운 최상위 루트로 바꾸려고합니다. 또는 방법은 이것을 깨끗하게 할 것입니까?

내 현재 (끔찍한) 접근법은 레벨을 "pop ()"하고 Navigator.pushReplacementNamed () 호출을 수행하는 것입니다 (모두 여기에 명명 된 경로가 있습니다). 그러나 일반적인 해결책은 아닙니다 (정확한 방법을 알아야합니다) 많은 수준) 및 더 나쁜, 그것은 화면에 "애니메이션"전환 "pop"으로 각 pop ()에 대해 쪼개는 초 동안 발생합니다.

TIA!


  • 답변 # 1

    네비게이터는 pop 이상의 것을 노출시킵니다 . 다음과 같은 작업을 수행 할 수 있습니다.

    Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false);
    
    

    이것은 기본적으로 집을 밀고모든새 경로 뒤에있는 경로를 제거합니다

  • 답변 # 2

    이 코드를 사용해보십시오 :

       Navigator.pushAndRemoveUntil(
                        context,
                        MaterialPageRoute(
                          builder: (BuildContext context) => YourInitialPage(),
                        ),
                        ModalRoute.withName('/'));
    
    

    전환을 원하지 않으면 MaterialPageRoute 를 재정의하거나 확장 할 수 있습니다  수업

  • 이전 cURL 명령을 실행하는 Java 프로그램을 중지 할 때까지 cURL -o 명령이 파일로 출력되지 않습니다
  • 다음 python - 팬더에서 두 날짜 사이의 영업일 수를 얻는 방법