mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Require giving a GlobalKey to UniqueComponent
Having UniqueComponent automatically generate its own key is a trap. If anyone ever creates a UniqueComponent in a build function (rather than ahead of time) and forgets to pass a key, then that entire subtree is going to be rebuilt, including layout, every time it's updated. Since there's basically no way for us to catch this, we should at least force the author to see the explicit "new GlobalKey()" call in their code.
This commit is contained in:
parent
eb6f2f069e
commit
68c57fb67f
@ -5,7 +5,9 @@
|
||||
import 'package:sky/src/fn3.dart';
|
||||
|
||||
abstract class UniqueComponent<T extends State> extends StatefulComponent {
|
||||
UniqueComponent({ GlobalKey key }) : super(key: key ?? new GlobalKey());
|
||||
UniqueComponent({ GlobalKey key }) : super(key: key) {
|
||||
assert(key != null);
|
||||
}
|
||||
|
||||
T createState();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user