Возможно ли получить актуальное состояние из Магазина вне дерева виджетов?
В Provider вы можете легко сделать это, вызвав Provider, как это, и состояние обновится, если есть какие-либо изменения.
Provider.of<WelcomeBloc>(context)
Но когда я позвоню:
StoreProvider.of<AppState>(context).state.currentPage;
Я просто получаю текущее состояние, но оно не обновляется при изменениях (или я там что-то делаю не так)
В этом случае мне нужно использовать этот вызов в блоке, который обновляется при изменениях. .. что в моем примере не случай
пример
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:ui_flutter/model/app_state.dart';
import './footer.dart';
import './viewWrapper.dart';
import './header.dart';
class Welcome extends StatefulWidget {
@override
_WelcomeState createState() => _WelcomeState();
}
class _WelcomeState extends State<Welcome> {
@override
Widget build(BuildContext context) {
int currentPage = StoreProvider.of<AppState>(context).state.currentPage; // This build method is invoked once only so I don't have update data
print('current page: $currentPage');
return Scaffold(
body: StoreConnector<AppState, AppState>(
converter: (store) => store.state,
builder: (context, state) {
return SafeArea(
child: Stack(
children: <Widget>[
ViewerWrapper(),
Footer(
currentStep: state.currentPage,
totalSteps: 3,
activeColor: Colors.grey[800],
inactiveColor: Colors.grey[100],
),
WelcomeHeader,
],
),
);
},
),
);
}
}
Заранее спасибо!