Я смотрел видео по управлению состоянием Pragmatic от google io19, о package:provider/provider.dart
и его способах управления состоянием. Это выглядит довольно просто, но у меня есть вопрос о получении доступа к состоянию в методах класса.
Скажите, что где-то в классе мне нужно обновить состояние:
_onTap(data) {
appState.data = data;
}
В методе сборки класса я получаю состояние:
this._appState = Provider.of<AppState>(context);
Теперь мне нужен сеттер, поэтому я делаю:
set _appState(newValue) {
appState = newValue;
}
И, наконец, мне нужно поле состояния в моем классе:
class Tapable extends StatelessWidget {
var appState;
_onTap(data) {
appState.data = data;
}
set _appState(newValue) {
appState = newValue;
}
@override
Widget build(BuildContext context) {
this._appState = Provider.of<AppState>(context);
return SomeWidget(
onTap: () { _onTap(data) }
)
}
}
Удивительно, но это работает, но этот код пахнет для меня, поэтому я сомневаюсь, что это правильный путь.
Спасибо.