Flutter 使用Redux在小部件树外获取更新状态
是否可以从窗口小部件树外的存储中获取最新状态 在Provider中,您可以通过像这样调用Provider轻松地完成这项工作,并且如果有任何更改,状态将更新Flutter 使用Redux在小部件树外获取更新状态,flutter,redux,flutter-dependencies,Flutter,Redux,Flutter Dependencies,是否可以从窗口小部件树外的存储中获取最新状态 在Provider中,您可以通过像这样调用Provider轻松地完成这项工作,并且如果有任何更改,状态将更新 Provider.of<WelcomeBloc>(context) Provider.of(上下文) 但当我打电话时: StoreProvider.of<AppState>(context).state.currentPage; StoreProvider.of(context).state.currentPag
Provider.of<WelcomeBloc>(context)
Provider.of(上下文)
但当我打电话时:
StoreProvider.of<AppState>(context).state.currentPage;
StoreProvider.of(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,
],
),
);
},
),
);
}
}
导入“包装:颤振/材料.省道”;
导入“包:flutter_redux/flutter_redux.dart”;
导入“package:redux/redux.dart”;
导入“包:ui_flatter/model/app_state.dart”;
导入“./footer.dart”;
导入“./viewWrapper.dart”;
导入“./header.dart”;
类欢迎扩展StatefulWidget{
@凌驾
_WelcomeState createState()=>\u WelcomeState();
}
类WelcomeState扩展了状态{
@凌驾
小部件构建(构建上下文){
int currentPage=StoreProvider.of(context).state.currentPage;//此生成方法只调用一次,因此我没有更新数据
打印(“当前页:$currentPage”);
返回脚手架(
正文:StoreConnector(
转换器:(存储)=>store.state,
生成器:(上下文、状态){
返回安全区(
子:堆栈(
儿童:[
ViewerRapper(),
页脚(
currentStep:state.currentPage,
总体步骤:3,
activeColor:Colors.grey[800],
不活动颜色:颜色。灰色[100],
),
欢迎光临,
],
),
);
},
),
);
}
}
提前感谢强>