JAVA/열일하는 블로그
[플러터] 새 페이지 생성시
샛별KIM
2022. 2. 17. 12:36
1. 페이지의 클래스 가장 상단에 routeName 추가
static String routeName = "/second_page";
2. routes.dart에 양식에 맞추어 routeName을 부를 때 불러오는 페이지 정의
3. userId와 userName은 메인페이지에 미리 정의해두었기 때문에
메인 페이지에서 불러오는 자식들인 Tab의 ~~~Page() 에서 값을 불러와 사용할 수 있음
extends State<StatefulWidget> 클래스에 불러오는 내용 추가
late String userId;
late String userName;
@override
void didChangeDependencies() {
super.didChangeDependencies();
final Map arguments = ModalRoute.of(context)?.settings.arguments as Map;
if (arguments != null) {
userId = arguments["userId"] as String;
userName = arguments["userName"] as String;
}
}
4. 예시용 풀 코드
import 'package:flutter/material.dart';
class SecondPage extends StatefulWidget {
static String routeName = "/second_page";
const SecondPage({Key? key}) : super(key: key);
@override
_SecondPage createState() => _SecondPage();
}
class _SecondPage extends State<StatefulWidget> {
late String userId;
late String userName;
@override
void didChangeDependencies() {
super.didChangeDependencies();
final Map arguments = ModalRoute.of(context)?.settings.arguments as Map;
if (arguments != null) {
userId = arguments["userId"] as String;
userName = arguments["userName"] as String;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("두번째 페이지"),
Text("$userName 님"),
],
),
),
);
}
}