问题比较简单,但是一开始方向走错了,以为时 Provider 重 build 导致的返回值丢失,导致问题点找了很久。
Button
onPressed
后返回上个页面,上个页面 await
路由返回值,但是一直得到的是 null
。
问题代码大致如下:
...
isSavedSuccess = await _reqAndSaveInfo(model, avatar, nickname, gender);
Navigator.of(context).pop(isSavedSuccess);
} finally {
loading.dismiss();
}
} // onPressed 方法结束
...
loading
是一个 showDialog
的弹出框,其中 dismiss
内部只是单纯的调用了 Navigator.of(_context).pop();
。
问题找到了看着是很明显的,先 pop
要返回的值,接下来 finally
块执行,loading.dismiss()
内部的 pop
返回值覆盖了原本要 pop
的值。