Flutter ส่งค่าข้ามหน้า ด้วย Navigator.push บทความนี้สอนเขียนโปรแกรม Flutter สำหรับส่งค่าจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง ด้วยคำสั่ง Navigator.push พร้อมแสดงค่าดังกล่าวออกสู่หน้าจอ สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง Flutter ส่งค่าข้ามหน้า ด้วย Navigator.push
1. import material.dart และใช้คำสั่ง runApp รันโปรแกรมจาก class PageA
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(
home: PageA(),
));
}
2. สร้าง class PageA ประกอบด้วยปุ่ม ElevatedButton เมื่อกดแล้วจะวิ่งไปหน้า PageB พร้อมกับส่งค่าข้ามหน้าจำนวน 2 ค่า คือ id = 1 และ name = ‘devdit’ ด้วยคำสั่ง Navigator.push
class PageA extends StatelessWidget {
const PageA({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar( title: const Text('Page A'), ),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context){
return PageB(id: 1, name: 'devdit',);
}));
},
child: const Text('ส่งค่าไปหน้า Page B')
)
),
);
}
}
3. สร้าง class PageB ประกอบด้วยตัวแปร 2 ตัวคือ id และ name พร้อมกับ constructor ที่รับค่าตัวแปรทั้ง 2 จากนั้นแสดงผลตัวแปรที่ถูกส่งข้ามหน้าที่ widget Text โดยวางอักษร $ ไว้หน้าตัวแปรทั้ง id และ name
class PageB extends StatelessWidget {
int? id;
String? name;
PageB({super.key, this.id, this.name});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar( title: const Text('Page B'), ),
body: Center(
child: Text('id = $id / name = $name'),
),
);
}
}