Я видел, что GlobalKey
можно использовать для получения текущего состояния элемента и вызова для него методов publi c:
- Это обычный подход для изменения элемента состояние или чтение из состояния?
- Или лучше предоставить соответствующие аргументы в конструкторе виджета? Помогли с ValueNotifier и друзьями
- ... или оба варианта гибкости использования?
Пример:
GlobalKey<SomeWidgetState> widgetKey = GlobalKey<SomeWidgetState>();
[...]
SomeWidget(key: widgetKey),
GestureDetector(
onTap: () {
widgetKey.currentState.doSomething();
widgetKey.currentState.getSomething();
})
против
bool animate = false;
ValueNotifier valueNotifier;
SomeWidget(listenableValue: valueNotifier, animateSomething: animate),
GestureDetector(
onTap: () {
animate != animate;
})