【发布时间】:2020-01-10 08:19:44
【问题描述】:
我正在尝试使用Provider 将我的屏幕页面嵌套为TabBarView。当我尝试使用
此提供者为:
Provider.of(context).getSingleUser()
一起进入父屏幕和TabBarView 上的一页在这个屏幕上我得到错误:
此时小部件的元素树的状态不再是 稳定的。 E/flutter (21506):安全地引用小部件的祖先 它的 dispose() 方法,通过调用保存对祖先的引用 inheritFromWidgetOfExactType() 在小部件的 didChangeDependencies() 方法。
在主函数中我定义了这个提供者:
...
MultiProvider(providers: [
Provider(builder: (_) => database),
Provider(builder: (_) => database.userTableDao),
Provider(builder: (_) => settings),
] ... ,
进入register_navigator.dart 我有TabBarView 和两个孩子
FutureBuilder(
future: Provider.of<UserTableDao>(context).getSingleUser(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
UserTableData user = snapshot.data;
...
TabBarView( ... ),
}
...
}),
然后我使用了这个TabBarView 的孩子
FutureBuilder(
future: Provider.of<UserTableDao>(context).getSingleUser(),
再次
当我从 TabBarView 的父级删除提供者实现时,会导致问题解决
【问题讨论】:
-
您是否在此流程的某个点调用了 push?
-
我的意思是,您正在导航到任何路线吗?
-
你能提供标签持有者和标签视图的完整代码吗?
标签: flutter