我正在制作具有动态外观的应用程序,因此在加载config json时,我需要以包括应用程序主题的新外观重新绘制整个应用程序。
我通过使用Redux StoreConnector包装根窗口小部件来实现此目标,但是问题是,当更改应用程序状态时,现在整个窗口小部件树都会重新绘制。
class App extends StatelessWidget {
final Store<AppState> store;
final Widget homeWidget;
App(this.store, this.homeWidget);
@override
Widget build(BuildContext context) {
return StoreProvider(
store: store,
child: StoreConnector<AppState, ApplicationViewModel>(
builder: builder, converter: converter),
);
}
Widget builder(BuildContext context, ApplicationViewModel vm) {
return MaterialApp(
title: 'Flutter Redux Example',
navigatorKey: Keys.navKey,
theme: vm.theme,
home: homeWidget,
);
}
ApplicationViewModel converter(Store<AppState> store) {
return ApplicationViewModel.fromStore(store);
}
}
有没有办法在加载初始配置json时仅更新一次根窗口小部件?