Flutter:不要初始化 class 类型变量

Flutter: Don't get class type variable initialized

对这个愚蠢的问题表示歉意,但显然我的搜索关键字不正确,或者解决方案对其他人来说太明显了,以至于还没有人问过。以前,我初始化没有问题,我不明白这里有什么不同。

我有一个基于数据的变量 class,我想给它赋值

class MyData {
  int id;
  String description;
  MyData({
    this.id,
    this.description,
  });

  factory MyData.fromJson(Map<String, dynamic> parsedJson){
    return new ProblemTask(
      id: parsedJson['id'],
      taskText: parsedJson['decription'],
    );
  }

  Map<String, dynamic> toJson() => {
    'id': id,
    'taskText': description,
  };
}


class _MyPageState extends State<MyPage>{
  MyData myVar;

  @override
  void initState() {
    super.initState();
    myVar = MyData();
  }
    
  _onDone() {
    myVar.id = 1;
    myVar.description = "abc";
  }
}

这导致

setter 'descr=' 被调用为 null。

接收方:空

但我的理解是我用 myVar = MyData(); 创建了一个空实例,我希望它能捕捉到我的值。

有几个参数拼写错误:

import 'package:flutter/material.dart';

class MyData {
  int id;
  String description;
  MyData({
    this.id,
    this.description,
  });

  factory MyData.fromJson(Map<String, dynamic> parsedJson){
    return new MyData( // MyData instead ProblemTask
      id: parsedJson['id'],
      description: parsedJson['description'], //description instead of taskText
    );
  }

  Map<String, dynamic> toJson() => {
    'id': id,
    'taskText': description,
  };
}

class MyPage extends StatefulWidget {
  @override
  _MyPageState createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> {
 MyData myVar;

  @override
  void initState() {
    super.initState();
   myVar = new MyData(id:1,description:'abc');
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}