如何从 Flutter 的列表中为模型类赋值? [复制]

Posted

技术标签:

【中文标题】如何从 Flutter 的列表中为模型类赋值? [复制]【英文标题】:How to assign values to a model class from a list in Flutter? [duplicate] 【发布时间】:2021-02-11 15:23:42 【问题描述】:

cats.dart 页面上我有:


    class Cats
    String name;
    String gender;
    int age;
    
    Cats(this.name, this.gender, this.age);
    
    setData(list)
    for(int i = 0; i < l.length; i++)
    name = list[0];
    gender = list[1];
    age = list[2];
      
     
    

然后我在一个名为 kitty.dart 的页面上:

    import: 'cats.dart';
    
    List<String> cat = ["fluffy","female",3];
    
    class Kitty extends StatefulWidget 
    
      @override
      _Kitty createState() => _Kitty();
    
    
    class _Kitty extends State<Kitty> 
      Cats kitten;
      String data = '';
    
      @override
      void initState() 
        super.initState();
      
    
      @override
      Widget build(BuildContext context) 
        return Scaffold(
          appBar: AppBar(
            title: const Text('Cats'),
          ),
          body:
          Column(
            children: [
              Text(
                data, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
              ),
              FlatButton(
                  onPressed: ()
                    kitten.setData(cat);
                    setState(() 
                      data = kitten.name;
                    );
                  ,
                  child: Text('Get Data', style: TextStyle(fontSize: 20),
                  ),
              ),
            ],
          ),
        );
      
    

和通常的 ma​​in.dart

import: 'kitty.dart';
void main() 
  runApp(MyApp());


class MyApp extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      theme: ThemeData.light(),
      debugShowCheckedModeBanner: false,
      home:  Kitty(),
        );
  


...它甚至看起来很傻,但我已经尝试并无法弄清楚...它说的是

在 null 上调用了方法“setData”。 接收方:空 尝试调用:setData(Instance(length:3) of '_GrowableList')

任何帮助将不胜感激...

【问题讨论】:

你好,可以分享XWordTile类的代码吗? 你从未初始化xwordtile,所以它是null。有关说明,请参阅链接。 @YakhyoMashrapov 抱歉,我错过了...编辑了代码.. @nvoigt 也道歉...当我复制真实代码时出错...错过了... 那么,你在哪里初始化kitten 【参考方案1】:

你必须初始化你的小猫对象。 只需在initState中添加这行代码

kitten = Cats();

【讨论】:

你的代码现在可以工作了吗? 当然,欢迎))

以上是关于如何从 Flutter 的列表中为模型类赋值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从变量的前缀列表中为变量赋值

如何在多个标签问题中为 tensorflow 模型设置类权重?

如何从 Flutter 中的不同模型继承多个类

Flutter 使用 BloC 模式从 API 结果中获取列表元素

如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型

如何从 Provider 创建一个下拉列表? (扑)