Flutter:使用 ObjectKeys 的更好方法?
Flutter: Better way to use ObjectKeys?
我正在使用一个 StatefulWidget,它的构造函数包含一个对象,例如
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)
不是常量表达式,所以不能作为默认参数使用。还有别的办法吗?
您可以通过在构造函数中使用此表示法来完成您想要的:
class X extends StatefulWidget {
X({this.o}) : key = ObjectKey(o);
Object o;
ObjectKey key;
}
这称为 初始化程序列表 ,您可以找到有关 here 的更多信息。
我正在使用一个 StatefulWidget,它的构造函数包含一个对象,例如
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)
不是常量表达式,所以不能作为默认参数使用。还有别的办法吗?
您可以通过在构造函数中使用此表示法来完成您想要的:
class X extends StatefulWidget {
X({this.o}) : key = ObjectKey(o);
Object o;
ObjectKey key;
}
这称为 初始化程序列表 ,您可以找到有关 here 的更多信息。