Flutter 元素数据未刷新

Flutter 元素数据未刷新,flutter,navigation,Flutter,Navigation,//在提交时为对话框调用其他类,但单击该对话框不会更新列表数据 它正在刷新数据,但不会转到第二个选项卡上最后打开的选项卡。我执行此操作,但点击时,它会转到第一个选项卡 onTap: () { setState(() { Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => EmployeePersonalDetailsU

//在提交时为对话框调用其他类,但单击该对话框不会更新列表数据

它正在刷新数据,但不会转到第二个选项卡上最后打开的选项卡。我执行此操作,但点击时,它会转到第一个选项卡

onTap: () {
       setState(() {
         Navigator.pushReplacement(context, 
          MaterialPageRoute(builder: (context) => 
          EmployeePersonalDetailsUpdateActivity(_token),));
          widget.listener.onEmployeeFamilyClick(_day, _month, _year, 
          _working);
     });
 Navigator.pop(context,true);
}   

导航后调用widget.listener,在导航路线之前调用它&如果要将api响应传递给EmployeePersonalDetailsUpdateActivity小部件,则必须处理它,当您要刷新屏幕时,这是您的选择

setState(() {
 widget.listener.onEmployeeFamilyClick(_day,_month,_year,_working);
 Navigator.pushReplacement(context, MaterialPageRoute(builder: 
         (context) => EmployeePersonalDetailsUpdateActivity(_token),));
       });
还有另一种方法:

widget.listener.onEmployeeFamilyClick(_day,_month,_year,_working).then((value) {
       Navigator.pushReplacement(context, MaterialPageRoute(builder: 
             (context) => EmployeePersonalDetailsUpdateActivity(_token), value));
    });

您可以导航小部件并传递响应值,并在小部件上显示更新后的值。

是否尝试更改当前屏幕?是的,此操作在dialog类上执行,点击,它将返回到活动类我的问题它不会使用widget.listener刷新列表数据我调用API。了解您的问题,如果您使用flatter_bloc处理此问题,imo将更容易。为什么您调用pushReplacement,然后从Navigator调用pop?您应该从离开的屏幕调用pop,而不是从屏幕,打开另一个屏幕。尝试在不调用setState的情况下导航到其他屏幕,并在那里进行所需的操作。我尝试了两种解决方案,但在第二种解决方案中都不起作用,因此出现了一个错误。使用navigator,当对话框关闭时,如何定义要从中选择的特定选项卡的路线。