Flutter重新加载子小部件的初始化状态

您所在的位置:网站首页 8279初始化 Flutter重新加载子小部件的初始化状态

Flutter重新加载子小部件的初始化状态

2023-05-03 15:09| 来源: 网络整理| 查看: 265

我尝试在Navigator.pop上重新加载我的页面,然后我这样做:

Flutter - How to get notified when the page I pushed was popped by back button?

但在我的父页面中,我会这样做:

refresh() async{ await _immagineBloc.getNomiImmagini(_deviceName); setState(() { _index = 0; }); }

这不会在selectPhoto初始化状态中返回:

Widget build(BuildContext context) { _tabs = getTabs(2); return StreamBuilder( stream: _immagineBloc.immaginiName, builder: (context, snapshot) { if (snapshot.hasData) { return new MaterialApp( home: DefaultTabController( length: 2, child: Scaffold( appBar: AppBar( centerTitle: true, title: Text('App Drive'), backgroundColor: Colors.blueAccent, bottom: TabBar( isScrollable: false, indicatorColor: Colors.white, onTap: (int index) { _index = index; setIndex(index); }, tabs: _tabs) ), body: _index == 0 ? selectPhoto(snapshot, refresh) : ImageOnServer(snapshot, _deviceName), ),

如何在selectPhoto内部重新进入初始化状态?

在刷新方法调用后想要重新进入的类的初始化状态:

class selectPhoto extends StatefulWidget { @override final Function() notifyParent; selectPhoto(AsyncSnapshot snapshot, @required this.notifyParent){ _snapshot = snapshot; } AsyncSnapshot _snapshot; _selectPhotoState createState() => _selectPhotoState (_snapshot); } class _selectPhotoState extends State { _selectPhotoState(AsyncSnapshot snapshot) { _snapshot = snapshot; @override void initState() { super.initState(); _fetchNewMedia(_snapshot); // i wan't to re enter here on reload method enter } }

在构建中,我有:

onPressed: () => Navigator.push( context, MaterialPageRoute(builder: (context) => photoSelection(_imagesIds, _deviceName, _imageNames)) ).then((val) { if (val == 'pop') { widget.notifyParent(); }; })

请帮帮我!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3