flutter 为什么即使使用pushAndRemoveUntil()弹出了上一页,TextFormField()中的值仍然保留?

jk9hmnmh  于 2022-11-26  发布在  Flutter
关注(0)|答案(1)|浏览(97)

我知道pushAndRemoveUntil()会弹出所有页面。但是,请参考下面的代码和截图。如果用户键入dummy dummy,然后移动到ResetPassword()' with 'pushAndRemoveUntil(),最后移回同一页面LogIn()dummy的值仍然存在。
请告诉我为什么会发生这种情况,'pushAndRemoveUntil()'没有删除所有以前的页面,或其他因素影响这个问题?并让我知道我如何解决它。
第一个

x4shl7ld

x4shl7ld1#

解决这个问题非常简单,只需在导航到下一个屏幕之前添加一个loginIdController.clear()函数:

Align(
                        ...
                          child: InkWell(
                            onTap: () {

                                  loginIdController.clear(); //add this
                                  ref.read(completeErrorMessage.notifier).update((state)=>null);
                                  // generalNavigator(context: context, destination: ResetPassword(), goBack: "go");
                                  removeNavigator(context: context, destination: ResetPassword());
                                },
                                ...
                              ),
                            ),
                          ),

相关问题