【问题标题】:Giving the state instance to another class将状态实例提供给另一个类
【发布时间】:2021-09-02 17:02:13
【问题描述】:

之前,我将state 实例提供给另一个这样的类 它奏效了。

class QBox{
  _KeyPageState parent; // declare variable

  QBox(p){
         parent = p; //get state in constructor
  }
}

class _KeyPageState extends State<KeyPage> {
   void initState(){
     super.initState();
     qBox = new QBox(this); //gave state here.
   }
}

但是在更新 Flutter 之后会出现这个错误。

Error: Field 'parent' should be initialized because its type '_KeyPageState' doesn't allow null.

我怎样才能避免这个错误??

【问题讨论】:

  • 后期_KeyPageState父;看看这是否有效。
  • late 键也很好用

标签: flutter dart


【解决方案1】:

您可以使用初始化列表,而不是在构造函数的主体中分配parent

QBox(_KeyPageState p): parent = p;

更多信息在这里:https://dart.dev/guides/language/language-tour#constructors

此外,这是一种反模式——让子级和父级相互引用可能会导致内存泄漏等问题。如果您需要将一些信息从孩子传递给父母,通常最好的方法是使用回调

【讨论】:

  • 我看到给父母参考不是好的反模式。谢谢
猜你喜欢
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 2021-07-25
  • 2023-01-25
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
相关资源
最近更新 更多