我正在使用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
函数,我将得到一个完全空白的抽屉,没有任何涂漆。
有人知道吗?