Как получить значение со страницы на другую страницу от поставщика?

#flutter #dart

#трепетать #дротик

Вопрос:

я использую CupertinoDatePicker для получения дня рождения пользователя, но я попытался отправить это значение (рождение) со страницы DatePicker на другую страницу или в другой класс, я не хочу использовать Навигатор для его отправки !

Если лучшее решение-разместить два кода на одной странице, это не проблема. спасибо вам за вашу помощь..

Код страницы Sginin:

 class SignInScreen extends StatefulWidget {  SignInScreen({Key? key}) : super(key: key);  static String routeName = "/SignInScreen";    @override  _SignInScreenState createState() =gt; _SignInScreenState(); }  class _SignInScreenState extends Statelt;SignInScreengt; { @override Widget build(BuildContext context) {  //size screen  Size size = MediaQuery.of(context).size;  return WillPopScope(  child: SafeArea(  child: Scaffold(  body: pageSP(),  ),  ),  onWillPop: () {  return showDialog(  context: context,  barrierDismissible: false,  builder: (BuildContext context) {  return AlertDialog(  title: Text("Confirm Exit"),  content: Text("Are you sure you want to exit?"),  actions: lt;Widgetgt;[  TextButton(  child: Text("YES"),  onPressed: () {  SystemNavigator.pop();  },  ),  TextButton(  child: Text("NO"),  onPressed: () {  Navigator.of(context).pop();  },  )  ],  );  }).then((value) =gt; value as bool);   },  ); }  Widget pageSP(){  Size size = MediaQuery.of(context).size;  return Consumerlt;ConnectivityProvidergt;(builder: (context,model,child){  return model.isOnline? Container(  decoration: BoxDecoration(  color: mPrimaryColor,  // gradient: mPrimaryGradientColor,  ),  height: size.height,  width: size.width,  child: Stack(  children: lt;Widgetgt;[  SingleChildScrollView(  // reverse: true,  child: Container(  margin: EdgeInsets.only(  top: size.height * 0.015,  right: size.height * 0.035,  left: size.height * 0.035),  child: Column(  crossAxisAlignment: CrossAxisAlignment.center,  children: [  SizedBox(  height: size.height * 0.025,  ),  Container(  child: InkWell(  onTap: () {  setState(() {  showSignIn = !showSignIn;  });  },  child: Image(  color: white,  image: AssetImage('assets/images/AppIcon.png'),  height: size.height * 0.20,  ),  ),  ),  Text( "$birth"),  ],  ),  ),  )  ],  ),  ): Container(  child: Column(mainAxisAlignment: MainAxisAlignment.center,  children: [  Center(  child: CircularProgressIndicator(),  ),  SizedBox(height: 25,),  Text("Checking your internet Connection")  ],  ),  );  }); }  

Страница выбора даты :

 class _MyDatePackerState extends Statelt;MyDatePackergt; {   DateTime dateTime = DateTime.now();  DateTime? selectedDate;  bool showDate = false;   @override  Widget build(BuildContext context) {  Size size = MediaQuery.of(context).size;  return SizedBox(  height: 350,  child: Column(  children: [  Container(  width: size.width * 0.9,  height: 200,  decoration: BoxDecoration(  color: Colors.white,  borderRadius: BorderRadius.all(Radius.circular(12)),  boxShadow: [  BoxShadow(color: Colors.redAccent, spreadRadius: 0.05)  ]),  child: CupertinoDatePicker(  initialDateTime: dateTime,  minimumYear: 1940,  maximumYear: DateTime.now().year,  mode: CupertinoDatePickerMode.date,  onDateTimeChanged: (value) {  setState(() {  selectedDate = value;  showDate = true;  });  }),  ),  SizedBox(  height: 10,  ),  SizedBox(  height: size.height * 0.06,  width: size.width * 0.9,  child: ElevatedButton(  onPressed: () {  if (selectedDate != null) {  final birth = DateFormat('dd-MM-yyyy').format(selectedDate!);  print(birth);  Navigator.pop(context);  }else{  showDialogAll(context,"hata","please chosse ya baby");  print("eror");  }  },  style: ElevatedButton.styleFrom(  primary: white,  shape: new RoundedRectangleBorder(  borderRadius: new BorderRadius.circular(10),  ),  ),  child: Text(  "OK",  style: TextStyle(  color: Sin_Login,  fontSize: 20,  fontWeight: FontWeight.w100,  ),  )),  ),  ],  ),  );  } }  

спасибо вам за вашу помощь..