在 Flutter 中将参数传递给导航窗口

passing a parameter to the navigated window in flutter

提问人:emsiloader 提问时间:9/28/2023 更新时间:9/28/2023 访问量:36

问:

我已经查看了几份文档和 S.O 条目,但找不到能够在我的应用程序中测试的真正简单的示例。 我只想 - 简单地 - 传递一个字符串(或 int...等)值到我通过按下按钮打开的下一个屏幕。

这是我的第二个页面 receivingpage.dart(它将接收数据)的核心块:

 import 'package:flutter/material.dart';

 class receivingpage extends StatefulWidget {
  const receivingpage({super.key});

  @override
  _receivingpageState createState() => _receivingpageState(receiveddata:'mystring');
  }  

class _receivingpageState extends State<receivingpage> {

final String receiveddata;
_examinationState({required this.receiveddata}); 

@override
Widget build(BuildContext context) {
 return Scaffold(.... the rest of the code...

这是第一页(senderpage.dart),它将数据发送到下一页:

 onTap: ()
  => Navigator.push(context,
 MaterialPageRoute(builder: (context) =>   examination( <******> ),), 
    ),

当我将参数名称(我在第一页中定义的 receiveddata)放在这里时: <******> ,它不接受并返回以下错误:

未定义命名参数“receiveddata”。 尝试将名称更正为现有命名参数的名称,或定义名称为“gelenParametre”的命名参数。

flutter 参数传递

评论

0赞 emsiloader 9/28/2023
谢谢你的帮助和纠正Vivek,但这是一个非常糟糕的条目吗?既然你 - 进球了,我只是想知道
0赞 Vivek Chib 9/28/2023
是的,你有这样做的想法,但执行很糟糕。

答:

1赞 Vivek Chib 9/28/2023 #1

你做错了。您正在尝试在状态类中传递数据。

class ReceivingPage  extends StatefulWidget {

  final String data;

  const ReceivingPage ({super.key,required this.data});

  @override
  State<ReceivingPage > createState() => _ReceivingPage State();
}

class _ReceivingPage State extends State<ReceivingPage > {
  @override
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}