我正在使用软件包states_rebuilder
,并尝试根据FirebaseUser
到Stream<FirebaseUser> onAuthStateChanged()
不为空的情况来设置受保护的路由
我已将流注入main():
Inject<User>.stream(() => Injector.get<UserStore>().onAuthStateChanged());
我已经像这样设置了两个页面(路线名称除外):
Widget build(context) {
final userRM = Injector.getAsReactive<User>(context: context);
print(userRM);
return Center(
child: GestureDetector(
onTap: () => Navigator.of(context).pushNamed('/other_page'),
child: Text('GO TO OTHER PAGE'),
),
);
}
这是print(userRM)
行的输出
在初始构建时:
flutter: Stream of <User> singleton reactive model (#Code 591819645) => isWaiting
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
在第一次更改路线时:
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
关于第二条路线更改:
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
flutter: Stream of <User> singleton reactive model (#Code 591819645) => hasData : null
此操作不断进行,每次路线更改都会重建+1次。重新加载(不重新启动)时,它会重建大约相同的时间。 IE如果我重新路由几次并且重建了7倍,它将在重新加载时重建7倍。
显然不应该,但是我不知道为什么...