Flutter/Flutter개발
[Flutter] context없이 다른 뷰로 navigate하기
달님개발자
2023. 10. 6. 13:37
반응형
Local Push를 띄운 상태에서 클릭하면 다른 뷰를 열려고 하는데, 기존에 쓰던 Navigator.push는 context가 필요하여 쓸수가 없다.
실제로 에러나는 부분은 빨간색 context이다. (context)는 에러나는 부분이 아니다.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NewPage(),
),
);
이럴때는 GlobalKey를 써보자.
GlobalKey : A key that is unique across the entire app.
아래처럼 navigatorKey라는 변수를 GlobalKey로 선언하고, main함수에서 navigatorKey에 할당해주자.
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
void main() async {
runApp(
MaterialApp(
navigatorKey: navigatorKey,
home: const MyApp(),
),
);
}
그리고 아래처럼 사용하면 된다. (여기에 보이는 (context)변수랑, Navigator.push에 있는 context랑 헷갈리지 말자)
navigatorKey.currentState?.push(
MaterialPageRoute(
builder: (context) => NewPage(),
),
);
반응형