gpt4 book ai didi

flutter - 将2个变量从2个差异屏幕传递到1个屏幕

转载 作者:行者123 更新时间:2023-12-03 04:45:08 25 4
gpt4 key购买 nike

我有Home(),Category(),Region()类

要添加类别,请导航至Category()并添加区域,请导航至Region()

我想将类别内的cat值和区域内的城市值传递到主屏幕,但是我收到此错误:

Compiler message:
lib/Screens/regions.dart:32:95: Error: Too few positional arguments: 2 required, 1 given.
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>Home(city)));

这是主屏幕:
 class Home extends StatefulWidget {

final String sRegion;
final String sCategory;

Home(this.sRegion,this.sCategory, {Key key}):super(key: key);
@override
_HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
body: Center(
child: Text(cat + city),
),
),
);
}
}

类别屏幕:
 class Category extends StatefulWidget {

@override
_CategoryState createState() => _CategoryState();
}

class _CategoryState extends State<Category> {
@override
Widget build(BuildContext context) {
String cat = 'General';
return Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
body: Center(
child: FlatButton( onPressed: (){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>Home(cat)));
},),
),
),
);
}
}

区域屏幕:
     class Region extends StatefulWidget {

@override
_RegionState createState() => _RegionState();
}

class _RegionState extends State<Region> {
@override
Widget build(BuildContext context) {
String city = 'London';
return Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
body: Center(
child: FlatButton( onPressed: (){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>Home(city)));
},),
),
),
);
}
}

最佳答案

Home具有两个必须的位置参数(sRegionsCategory)。这些不是可选的,您必须提供它们。

Navigator.pushReplacement(context, 
MaterialPageRoute(builder: (context)=>Home(city, cat)));

请注意,我在 cat构造函数中添加了 Home。如果这些参数中的任何一个是可选的,则需要重写构造函数签名。

如果要使这些参数中的任何一个为可选,请将其转换为命名参数
Home({this.sRegion,this.sCategory, Key key}):super(key: key);

关于flutter - 将2个变量从2个差异屏幕传递到1个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62476694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com