【问题标题】:Flutter: Better way to use ObjectKeys?Flutter:使用对象键的更好方法?
【发布时间】:2020-10-30 05:09:21
【问题描述】:

我正在使用一个 StatefulWidget,它的构造函数包含一个 Object,比如

class X extends StatefulWidget {
  X({this.o});
  Object o;
...
}

有时会发生这种情况,o 这个对象发生了变化,但小部件X 没有更新,所以我不得不在构造函数中添加一个 ObjectKey:

class X extends StatefulWidget {
  X({this.o, this.key});
  Object o;
  ObjectKey key;
...
}

现在每次调用构造函数时,我都必须调用X(o: o, key: ObjectKey(o));。有没有更好的方法来做到这一点?如果构造函数自己管理它,那就太好了,就像

class X extends StatefulWidget {
  X({this.o, this.key = ObjectKey(o)});
  Object o;
  ObjectKey key;
...
}

但由于ObjectKey(o) 不是常量表达式,它不能用作默认参数。还有其他方法吗?

【问题讨论】:

    标签: flutter statefulwidget


    【解决方案1】:

    你可以通过在你的构造函数中使用这个符号来完成你想要的:

    class X extends StatefulWidget {
      X({this.o}) : key = ObjectKey(o);
      Object o;
      ObjectKey key;
    }
    
    

    这称为初始化列表,您可以在其中找到有关here 的更多信息。

    【讨论】:

      猜你喜欢
      • 2022-11-28
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多