首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter -将数据解析为statefulWidget

Flutter -将数据解析为statefulWidget
EN

Stack Overflow用户
提问于 2020-09-28 04:44:16
回答 2查看 54关注 0票数 0

我对Flutter还是个新手。我有一个问题,那就是我的股票。我正在尝试将数据从一个小部件解析到另一个StatefulWidget。

我有一个小部件,我尝试从中解析数据

代码语言:javascript
运行
复制
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]),
            ),
          );
        },
      ),
    );
  }
}

解析到此小部件

代码语言:javascript
运行
复制
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),

EN

回答 2

Stack Overflow用户

发布于 2020-09-28 04:52:16

如果在构造函数中使用命名参数- {}中的参数

代码语言:javascript
运行
复制
Test({this.malt});

您需要像这样调用它

代码语言:javascript
运行
复制
MaterialPageRoute(builder: (context) => Test(malt: malt[index]))

您可以查看有关不同类型的参数here的文档。

票数 0
EN

Stack Overflow用户

发布于 2020-09-28 04:59:36

替换下面的代码。

代码语言:javascript
运行
复制
class Test extends StatefulWidget {

  String malt;
  Test({this.malt});// here I Changed

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

代码语言:javascript
运行
复制
class Test extends StatefulWidget {

  String malt;
  Test(this.malt);// here it will be

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

并从测试类中删除String malt;_TestState({this.malt});代码。

代码语言:javascript
运行
复制
class _TestState extends State<Test> {
  String malt;// remove this line
  _TestState({this.malt});// remove this line too
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64093157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档