簡體   English   中英

Flutter如何將數據從第三屏傳遞到第一屏?

[英]How to pass data from the third screen to first screen in Flutter?

在我的應用程序中,第一個屏幕通過Navigator.of(context).push導航到第二個屏幕。 然后第二個屏幕通過Navigator.pushReplacement導航到第三個屏幕。 當我在第三個屏幕上pop時,應用程序將返回第一個屏幕,跳過第二個屏幕。

如果我想將數據從第二個屏幕傳回第一個屏幕,我可以簡單地在第一個屏幕上使用await Navigator.push(context) ,然后當我在第二個屏幕上pop時,我可以在上下文中傳遞數據。 但是,在這種涉及 3 個屏幕的情況下,我不能使用它。

使用 Navigator.of(context).push 到 go 第二個屏幕到第三個屏幕,當您彈出第三個屏幕時,您的代碼存在於。然后在第二個屏幕中將彈出第二個屏幕並將第二個屏幕的數據傳遞到第一個屏幕.

第一個屏幕到第二個:-

Navigator.push(context, CupertinoPageRoute(
   builder: (context)=>SecondScreen()
   )).then((value){  //value is the data which you pass while poping the second screen

});

第二屏到第三屏:-

Navigator.push(context, CupertinoPageRoute(
   builder: (context)=>ThirdScreen()
   )).then((value){ 
  Navigator.pop(context,your data)
 });

我已經推送了一個 flutter 項目,使用 state 管理的 bloc 模式解決了您的問題。 該應用程序有 3 頁。 第一個和第二個只有簡單的標簽包裹在點擊手勢(導航)中。 第三個是改變第一頁和第二頁標簽值的輸入。 git 回購

這是關於 flutter state 管理flutter state 管理的官方文檔

我建議您閱讀 Flutter 中有關state 管理的文檔。 我發現Provider模式對此特別有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM