Làm sao để pass data giữa các màn hình trong Flutter?
Làm sao để pass data giữa các màn hình trong Flutter?
Để truyền dữ liệu giữa các màn hình trong Flutter, bạn có thể sử dụng các phương pháp như sau:
Sử dụng Navigator:
Khi chuyển từ màn hình này sang màn hình khác thông qua Navigator.push
, bạn có thể truyền dữ liệu bằng cách đưa nó vào constructor của màn hình đích. Ví dụ, nếu bạn có một lớp SecondScreen
có một constructor nhận dữ liệu, bạn có thể gọi Navigator.push
và truyền dữ liệu cần thiết vào constructor.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SecondScreen(data: yourData),
),
);
Sử dụng Future và async:
Navigator còn hỗ trợ truyền dữ liệu về màn hình trước đó bằng cách sử dụng Navigator.pop
với một giá trị. Màn hình trước có thể nhận dữ liệu này bằng cách sử dụng một Future
.
final result = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InputScreen(),
),
);
**Sử dụng Provider hoặc các gói quản lý trạng thái khác (Redux, Bloc, ...
middle