Ios 如何在从推送通知打开子窗口小部件后从导航堆栈弹出窗口小部件并刷新父窗口小部件?

Ios 如何在从推送通知打开子窗口小部件后从导航堆栈弹出窗口小部件并刷新父窗口小部件?,ios,flutter,dart,Ios,Flutter,Dart,我有一个带有列表的MyFirstWidget,当点击列表中的一个项目时,它会将您带到MySecondWidget。问题是,当从推送通知访问MySecondWidget时,调用Navigator.pop返回MySecondWidget不会刷新它,显示过期数据 在正常情况下(不是来自推送通知),当我从导航堆栈弹出MySecondWidget时,MyFirstWidget会正确刷新。这是使用回调模式完成的,但是我还不能让推送通知案例工作 有什么想法吗 这是MyFirstWidget 类MyFirstW

我有一个带有列表的MyFirstWidget,当点击列表中的一个项目时,它会将您带到MySecondWidget。问题是,当从推送通知访问MySecondWidget时,调用Navigator.pop返回MySecondWidget不会刷新它,显示过期数据

在正常情况下(不是来自推送通知),当我从导航堆栈弹出MySecondWidget时,MyFirstWidget会正确刷新。这是使用回调模式完成的,但是我还不能让推送通知案例工作

有什么想法吗

这是MyFirstWidget

类MyFirstWidget扩展了StatefulWidget{
未来项目;
MyFirstWidget({this.items});
@凌驾
_MyFirstWidgetState createState()=>\u MyFirstWidgetState();
}
类_MyFirstWidgetState扩展状态{
未来项目;
Future\u refreshPosts(BuildContext上下文)异步{
setState((){});
}
@凌驾
void initState(){
super.initState();
_items=fetchItems();
}
@凌驾
小部件构建(构建上下文){
返回式CupertinoPageScaffold(
子:嵌套滚动视图(
headerSliverBuilder:(BuildContext上下文,boolInnerBoxIsCrolled){
返回[
CupertinoSliverNavigationBar(
LarGetTitle:Text('MyFirstWidget'),
)
];
},
正文:刷新指示器(
onRefresh:()=>\u refreshItems(上下文),
孩子:未来建设者(
未来:_项目,
生成器:(上下文,快照){
if(snapshot.hasError)打印(snapshot.error);
return snapshot.hasData?ItemsList(posts:snapshot.data,notifyParent:refresh):中心(child:CircularProgressIndicator());
},
)),
),
);
}
}
类ItemsList扩展了StatefulWidget{
final函数()通知父函数;
最后清单项目;
ItemsList({Key-Key,this.items,this.notifyParent}):super(Key:Key);
@凌驾
_ItemsListState createState()=>\u ItemsListState();
}
//为了更好地参考,该类故意不完整
类_ItemsListState扩展状态{
@凌驾
void initState(){
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回ListView.builder(
itemCount:widget.items.length,
itemBuilder:(构建上下文,int索引){
孩子:ListTile(
标题:“TileTitle”,
副标题:“TileSubtitle”,
onTap:()异步{
final value=await Navigator.push(上下文,MaterialPageRoute(builder:(context)=>ItemWidget(widget.items[index]);
notifyParent();
},
),
});
}
}
这是MySecondWidget

类MySecondWidget扩展StatefulWidget{ 最后项目; MySecondWidget(this.item); @凌驾 _MySecondWidgetState createState()=>\u MySecondWidgetState(); } 类_MySecondWidgetState扩展状态{ @凌驾 小部件构建(构建上下文){ 返回脚手架( appBar:appBar(标题:Text('MySecondWidget')), 正文:未来建设者( future:fetchItem(widget.item.id), 生成器:(上下文,快照){ if(snapshot.hasError)打印(snapshot.error); return snapshot.hasData?RenderItemWidget(snapshot.data):Center(子项:CircularProgressIndicator()); }, ), ); } }