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 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.
Bài viết được tham khảo từ Divyanshu Bhargava.
Bài viết liên quan
Flutter Tutorial 2022: Giới thiệu Flutter Travel App
Trong series này, chúng ta sẽ cùng nhau thực hiện ứng dụng Travel App với một bản UI Design vô cùng đẹp mắt, thu hút có sẵn....
So sánh StatelessWidget và StatefulWidget
Trong bài viết này, các bạn sẽ có cái nhìn tổng quát về hai loại widget lớn nhất là StatelessWidget và StatefulWidget....
Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter
Trong bài viết này, mình sẽ liệt kê cho bạn các shortcuts, extensions, setting mà bạn nên sử dụng để lập trình Flutter hàng ngày....
[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code
VS Code là 1 text editor tuyệt vời được phát triển bởi Mircosoft. Đây là một trong các công cụ được developer trên toàn thế giới yêu thích vì sự tiện lợi, dễ dùng và nó chứa hàng ngàn, thậm chí trăm ngàn các extension phục vụ cho bạn trong quá trình bạn phát triển phần mềm....
Fix lỗi Flutter 3 không thể build app trên iOS
Cách fix lỗi Flutter 3 không thể build và run được app trên iOS với video hướng dẫn chia tiết...