작성
·
266
0
안녕하세요 해당 항목에서 push 메서드들 강의를 들었습니다.
ElevatedButton(onPressed: (){
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (_)=>routethreescreen()
),
(route)=> route.settings.name == '/one',
);
}
강의하신대로 그대로 똑같이 코드를 작성해보며 name ==에 값을 '/' 이 아니라 '/one' 과 '/two'를
넣고 라우트3에서 팝하니까 라우트1이나 라우트2로 돌아가는게 아니라 검은색 화면이 나오더라고요.
'/'을 넣으면 정상적으로 홈스크린으로 가는데.. 에뮬레이터 끄고 콜드부트해서 빌드하고 해봤는데도 동일하네요..
아무리 생각해도 저 코드에 문제될 부분은 없어보이는데..
제가 궁금한건 이게 코드상의 문제인건지, 에뮬레이터상의 문제인건지 궁금해서 여쭤봅니다.
감사합니다.
답변 1
0
안녕하세요!
pushAndRemoveUntil은 새로운 라우트를 푸쉬한다음에 네비게이션스택에 존재하는 라우트중 조건에 맞지않는 라우트를 모두 삭제하는 기능입니다.
즉, 작성하신 조건에 맞는 라우트가 하나도 없었기때문에 검은색 화면이 나오는겁니다!
감사합니다.