pushNamedAndRemoveUntil관련 질문있어용
406
작성한 질문수 10
import 'package:flutter/material.dart';
import 'package:navigation/layout/main_layout.dart';
import 'package:navigation/screen/route_three_screen.dart';
class RouteTwoScreen extends StatelessWidget {
const RouteTwoScreen({super.key});
@override
Widget build(BuildContext context) {
final arguments = ModalRoute.of(context)!.settings.arguments;
return MainLayout(title: 'Route Two', children: [
Text(
'arguments: ${arguments}',
textAlign: TextAlign.center,
),
ElevatedButton(
onPressed: () {
// [HomeScreen(), RouteOne(), RouteTwo()] stack 구조!
Navigator.of(context).pop();
},
child: Text(
'Pop',
),
),
ElevatedButton(
onPressed: () {
Navigator.of(context).pushNamed('/three', arguments: 999);
},
child: Text('Push Named'),
),
ElevatedButton(
onPressed: () {
// Navigator.of(context).pushReplacement(
// MaterialPageRoute(
// builder: (_) => RouteThreeScreen(),
// ),
// );
Navigator.of(context).pushReplacementNamed('/three');
},
child: Text('Push Replacement'),
),
ElevatedButton(
onPressed: () {
// Navigator.of(context).pushAndRemoveUntil(
// MaterialPageRoute(builder: (_) => RouteThreeScreen()),
// (route) => route.settings.name == '/',
// );
Navigator.of(context).pushNamedAndRemoveUntil(
'/three',
(route) => route.settings.name == '/one',
);
},
child: Text('Push Named Replacement'),
),
]);
}
}
Navigator.of(context).pushNamedAndRemoveUntil(
'/three',
(route) => route.settings.name == '/one',
);제가 이런식으로 '/'이 아닌 '/one'으로 바꾸어 보았는데, route_three에서 pop()하면 one으로 가는게 아니라 그냥 검은 화면이 보여요. '/'은 잘 작동하고 main파일에서도 정확히 '/one'으로 잘 등록해 놓았는데 왜 작동이 안되는 걸까요??
답변 1
0
안녕하세요!
아마도 /one 이라는 라우트가 라우트 스택에 없어서 그런 것 같습니다.
/one 페이지까지 다른 페이지들을 삭제하라는 함수이기때문에 /one 페이지가 존재하지 않았다면 모든 라우트를 다 삭제합니다.
감사합니다!
198강 (){onTap(e);}의 이해 돕기
0
39
1
video_call 플러그인 설치후 에러 발생
0
47
1
SDK 안드로이드 설치 질문!
0
62
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
93
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
71
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
56
1
플레이스토어
0
60
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
56
1
가이드라인 질문
0
59
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
78
1
emulator 실행 오류
0
95
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
73
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
44
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
54
1
video_call 플러그인 설치시 에러문제
0
67
1
children 안의 if 문에서 { } 못쓰는 이유?
0
51
1
이렇게 오류가 떠요
0
66
1
AppBar 사용했는데
0
63
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
58
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
65
1
Video Player 프로젝트에 대한 추가 질문
0
54
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
43
1
geolocator 오류때문에 개발진행이 불가능입니다
0
64
1
API 관련 이슈
0
89
2





