Я использую flutter_redux для поддержки глобальных состояний.Здесь у меня есть ящик на главной странице, который покажет определенное меню, если appState.currentUser
не равно нулю, или меню входа, если оно равно нулю, поэтому я пишу его, как показано ниже.
drawer: Drawer(
child: _drawer(context),
),
Ивот ящик.
// drawer widget, using redurx
Widget _drawer(BuildContext context) {
return Connect<AppState, AuthUser>(
convert: (AppState state) => state.currentUser,
builder: (AuthUser currentUser) {
if (currentUser == null) {
return SomeLoginMenu();
} else {
return UserProfileMenu();
}
},
where: (AuthUser oldState, AuthUser newState) => oldState != newState; // I THINK SOMETHING WRONG HERE!!!
);
}
И я установил initData в Магазине как currentUser = null
(используя built_value
):
AppState state = AppState((b) => b..currentUser = null);
runApp(Provider(store: Store<AppState>(state), child: RealworldApp()));
Но теперь ящик не будет вызывать builder
функция, и я получу полный пустой ящик без ничего окрашенного.
У кого-нибудь есть идеи?