是否可以从 Widget 树之外的 Store 获取最新状态?
在 Provider 中,您可以通过像这样调用 Provider 轻松做到这一点,并且如果有任何更改,状态将更新。
Provider.of<WelcomeBloc>(context)
但是当我打电话时:
StoreProvider.of<AppState>(context).state.currentPage;
我只是得到当前状态,但它不会更新更改(或者我在那里做错了什么)
在这种情况下,我需要在一个块中使用该调用,该块会根据更改进行更新...在我的示例中不是这种情况
example
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,
],
),
);
},
),
);
}
}
提前致谢!