第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

flutter setState 在使用 Navigator.push 時彈出頁面

flutter setState 在使用 Navigator.push 時彈出頁面

嗶嗶one 2023-09-14 20:19:53
我編寫了三頁應用程序的簡單代碼,在第三頁中,當它使用“SetState”時,它返回到第二頁,但僅在第三頁中發(fā)生,當我在第二頁中使用“setState”時,它工作正常。我還嘗試使用“Navigator.of.push”在頁面之間導航,但 setState 只是沒有執(zhí)行任何操作,這里是我的代碼示例String check="go to next page";String check2="state1";Widget page3(){    return return  FlatButton(      child:Text(check2)      shape: RoundedRectangleBorder(          borderRadius: BorderRadius.circular(18.0),          side: BorderSide(color: Colors.blue[100])),      color: Colors.white,      onPressed: (){       setState((){check2="state3"});                   }); }Widget Profile(){ return  FlatButton(      child:Text(check)      shape: RoundedRectangleBorder(          borderRadius: BorderRadius.circular(18.0),          side: BorderSide(color: Colors.blue[100])),      color: Colors.white,      onPressed: (){       setState((){check2="state3"});       Navigator.push(            context,            MaterialPageRoute(builder: (context) => page3()),          )               });}Widget Biuld(BuildContext context){ return return Scaffold(  appBar: AppBar(    // Here we take the value from the MyHomePage object that was created by    // the App.build method, and use it to set our appbar title.    title: Text(widget.title),  ),  body:   FlatButton(      child:Text("press to start")      shape: RoundedRectangleBorder(          borderRadius: BorderRadius.circular(18.0),          side: BorderSide(color: Colors.blue[100])),      color: Colors.white,      onPressed: (){       Navigator.push(            context,            MaterialPageRoute(builder: (context) => profile()),          );                         })); }我得到的結果是,當按下第一個按鈕時,它會轉到第2頁,當我按下第二個按鈕時,它會更改第二個按鈕文本并轉到第三頁,但是當我按下第三頁上的按鈕時,它會返回到第二頁。使用 navgitor.of 時,它不會返回到第二頁,但也不會更改文本
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

我猜你為什么在使用 Navigator.push 更改頁面之前使用設置狀態(tài)方法。SetState 應該用于更改當前所在頁面上的數(shù)據(jù)狀態(tài),而不是用作“全局”數(shù)據(jù)存儲。

我建議你幾個選擇:

  • 使用所有頁面共享的“頂級”提供程序并更新其值:Provider

  • 使用本地數(shù)據(jù)庫SQLite

查看完整回答
反對 回復 2023-09-14
?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

您需要為每個具有構建功能的單獨的類創(chuàng)建上下文,這樣每個頁面的上下文都是新的,這樣您就必須創(chuàng)建有狀態(tài)的類,然后創(chuàng)建該頁面的另一個類



查看完整回答
反對 回復 2023-09-14
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號