我有一个flutter应用程序,它有一个底部导航栏,可以在导航栏中保存页面状态(我使用go_router)。我已经尝试了很长一段时间,以获得一个回拨我的最喜爱的网页上,只要我到达的网页。但我不能,所以这里有一个我想要的大纲:
第1页(管理导航):
void _tabChanged() {
...
}
...
LazyIndexedStack(
index: _controller.index,
children: const [
Home(),
Fav(), // it should be sent the callback, linked with tabChanged()
],
),
对于页面,您必须接收回调:
const Fav({Key? key, required this.callback}) : super(key: key);
...
widget.callback() {
... here I receive the callback from tab.dart
}
2条答案
按热度按时间q0qdq0h21#
我假设您希望导航栏调用
State<Fav>
的某个方法。您可以使用GlobleKey
查找状态或者,您可以传递一个
Listenable
,在Fav
中订阅它,并在导航栏中触发回调。但是,最佳实践是将逻辑与小部件树分离,而不是在
State
中执行所有操作f8rj6qna2#
非常感谢PurplePolyhedron,我收到了一个错误,所以我最终是这样做的:
在Fav页面: