【问题标题】:How to assign values to a model class from a list in Flutter? [duplicate]如何从 Flutter 的列表中为模型类赋值? [复制]
【发布时间】: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

标签: list class flutter model


【解决方案1】:

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

kitten = Cats();

【讨论】:

  • 你的代码现在可以工作了吗?
  • 当然,欢迎))
猜你喜欢
  • 1970-01-01
  • 2019-05-08
  • 2020-03-08
  • 2021-03-14
  • 2022-01-05
  • 1970-01-01
  • 2016-01-01
  • 2015-01-19
  • 2013-07-19
相关资源
最近更新 更多