---
title: "Làm thế nào để chuyển màn hình mà không cần context trong Flutter?"
description: "Nếu bạn muốn biết cách loại bỏ context khi navigate trong Flutter thì hãy đọc bài viết này nhé!"
canonical: "https://200lab.io/blog/lam-the-nao-de-navigate-ma-khong-can-context-trong-flutter"
published: "2021-12-07T13:00:00Z"
updated: "2026-08-21T07:17:45Z"
authors: ["Chau Le"]
tags: ["Flutter"]
reading_minutes: 2
access: "public"
---

Chúng ta sẽ học cách loại bỏ context khi navigate trong Flutter nhé.

Navigate là một phần không thể thiếu trong bất kì ứng dụng nào. Flutter sẽ hỗ trợ bạn navigate đến bất cứ màn hình nào một cách dễ dàng hơn chỉ với việc sử dụng các chức năng navigate đơn giản như Push và Pop.

**Để Push:**

```
Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SecondRoute()),
);
```

**Để Pop:**

```
Navigator.pop(context);

```

Điều này hoạt động khá tốt cho đến khi ứng dụng của bạn mở rộng quy mô và bạn tách logic nghiệp vụ của mình với logic UI. Và bây giờ bạn phải chuyển BuildContext từ một function này sang một function khác. Đôi khi việc này sẽ trở nên rắc rối khiến bạn muốn tránh việc chuyển context.

Đừng lo lắng nhé vì [NavigatorKey](<https://api.flutter.dev/flutter/material/MaterialApp/navigatorKey.html>) sẽ giải cứu bạn.

**1. Đầu tiên, hãy tạo Navigator Key**

```
static final navigatorKey = GlobalKey<NavigatorState>();
```

**2. Tiếp đến, hãy chuyển Navigator Key trong MaterialApp**

```
return MaterialApp(
      ...
      navigatorKey: AppRouter.navigatorKey,
    );
```

**3. Cuối cùng, hãy push bằng Navigator Key**

```
navigatorKey.currentState?.push(
    MaterialPageRoute(builder: (_) => SecondRoute()),
);
```

Vậy là xong, chỉ với 3 bước đơn giản, bạn đã có thể loại bỏ context ra khỏi Navigation của mình. Bạn có thể kiểm tra code đầy đủ trên [Github](<https://github.com/divyanshub024/flutter_samples>).

Bài viết được tham khảo từ [Divyanshu Bhargava](<https://www.divyanshu.dev/how-to-navigate-without-context-in-flutter>).

## Đọc thêm

- [Tự học Dart: Các Dart Operators (toán tử) bạn cần biết](https://200lab.io/blog/tu-hoc-ngon-ngu-dart-toan-tu-operator.md): Cập nhật nhanh các toán tử - operator quan trọng trong Dart để có thể sử dụng ngôn ngữ này một cách hiệu quả nhất nhé.
- [Flutter cơ bản: Điều cần biết khi lập trình ứng dụng đầu tiên](https://200lab.io/blog/flutter-co-ban-xay-dung-ung-dung-dau-tien.md): Flutter là framework hữu ích khi phát triển ứng dụng đa nền tảng. Hãy bỏ túi các kiến thức Flutter cơ bản để bắt đầu hành trình học hỏi của bạn.
- [Dart là gì? Giới thiệu cơ bản về ngôn ngữ lập trình Dart](https://200lab.io/blog/tu-hoc-ngon-dart-nhung-dieu-can-biet-truoc-khi-bat-dau.md): Dart là gì? Vì sao bạn cần học ngôn ngữ lập trình Dart để phát triển ứng dụng đa nền tảng? Cùng tìm hiểu những kiến thức cơ bản về Dart trong bài viết này nhé!
- [Flutter là gì? Vì sao nên học công cụ lập trình Flutter?](https://200lab.io/blog/flutter-la-gi.md): Flutter là gì? Vì sao bạn cần học lập trình Flutter để phát triển ứng dụng đa nền tảng? Cùng tìm câu trả lời qua bài viết này nhé!
- [Flutter cơ bản: Widget Tree, Element Tree & Render Tree](https://200lab.io/blog/flutter-co-ban-widget-tree-element-tree-render-tree.md): Flutter cơ bản đến nâng cao không khó. Để 200Lab Blog cập nhật cho bạn những thông tin mới nhất về Widget Tree, Element Tree và Render Tree nhé.
- [Mọi bài viết chủ đề Flutter](https://200lab.io/blog/tags/flutter.md)

Toàn bộ nội dung: https://200lab.io/llms.txt
