我对Flutter还是个新手。我有一个问题,那就是我的股票。我正在尝试将数据从一个小部件解析到另一个StatefulWidget。
我有一个小部件,我尝试从中解析数据
class MaltInput extends StatefulWidget {
@override
_MaltInputState createState() => _MaltInputState();
}
class _MaltInputState extends State<MaltInput> {
List<String> malt = ['Malt 1', 'Malt 2', 'Malt 3'];
String maltpick = "";
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Malt input'),
),
body: ListView.builder(
itemCount: malt.length,
itemBuilder: (context, index){
return Card(
child: ListTile(
onTap: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Test(malt[index]),
));
},
title: Text(malt[index]),
),
);
},
),
);
}
}解析到此小部件
class Test extends StatefulWidget {
String malt;
Test({this.malt});
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
String malt;
_TestState({this.malt});
List<String> items = [];
final TextEditingController ectrl = TextEditingController();
@override
Widget build(BuildContext context) {
String maltpick;
maltpick = (widget.malt);
//widget.malt = "";
return Scaffold(
appBar: AppBar(
title: Text('Dynamic content'),
),
body: Column(
children: <Widget>[
//
RaisedButton(
child: Text('Add malt'),
onPressed: (){
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => MaltInput()));
}
),
Text('Header.....'),
Text(maltpick),
Expanded(
child: ListView.builder(
itemCount: items.length,
itemBuilder: (BuildContext ctxt, int Index){
return Text(items[Index]);
}
),),
],
),
);
}
}错误在以下行中:生成器:(上下文) =>测试(Maltindex),错误代码:错误:位置参数太多:允许0,但找到1。尝试删除多余的位置参数。builder:(上下文) =>测试(Maltindex),
发布于 2020-09-28 04:52:16
如果在构造函数中使用命名参数- {}中的参数
Test({this.malt});您需要像这样调用它
MaterialPageRoute(builder: (context) => Test(malt: malt[index]))您可以查看有关不同类型的参数here的文档。
发布于 2020-09-28 04:59:36
替换下面的代码。
class Test extends StatefulWidget {
String malt;
Test({this.malt});// here I Changed
@override
_TestState createState() => _TestState();
}至
class Test extends StatefulWidget {
String malt;
Test(this.malt);// here it will be
@override
_TestState createState() => _TestState();
}并从测试类中删除String malt;和_TestState({this.malt});代码。
class _TestState extends State<Test> {
String malt;// remove this line
_TestState({this.malt});// remove this line toohttps://stackoverflow.com/questions/64093157
复制相似问题