반응형
RouteOneScreen->RouteTowScreen으로 데이터 전달
- 매터리얼패이지라우트를 스택에 쌓으면서 세팅값을 같이 넘긴다
class RouteOneScreen extends StatelessWidget {
final int number;
const RouteOneScreen({required this.number, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MainLayout(
title: 'RouteOne',
children: [
Text(
number.toString(),
textAlign: TextAlign.center,
),
ElevatedButton(
onPressed: (){
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => RouteTwoScreen(),
settings: RouteSettings(
arguments: 789,
)
)
);
},
child: Text('Push'))
]
);
}
}
RouteOneScreen에서 보낸 값을 RouteTwoScreen에서 받기.
- ModalRoute로 받는다
ModalRoute는
WidgetTree에서 가장 가까운 ModalRoute를 가져온다
ModalRoute는 fullScreen을 의미
RouteTwoScreen에서 가장 가까운 ModalRoute(=fulllScreen)은 본인(RouteTwoScreen)
ModalRoute.에 있는 settings.arguments는
RouteOneScreen에서 보낸 789값이 있다.
class RouteTwoScreen extends StatelessWidget {
const RouteTwoScreen({Key? key}) : super(key: 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,
),
],);
}
}
반응형
'Flutter > Flutter 기본' 카테고리의 다른 글
[Flutter] 화면 전환 push, 스택에서 삭제(pushReplacement(Named), push(Named)AndRemoveUntil) (0) | 2023.05.12 |
---|---|
[Flutter] 화면 전환, 데이터 전달3 (Named Route) (0) | 2023.05.12 |
[Flutter] 화면 전환, 데이터 전달1 (navigation) (0) | 2023.05.12 |
[Flutter] Button 종류와 설정 (0) | 2023.05.11 |
[Flutter] 코드 정리 (2) | 2023.05.01 |