ရှောင်ရန်ပုံစံများ

imperative နှင့် declarative မော်ဒယ်များကို ရောနှောသုံးသည့်အခါ bug အများစု ဖြစ်တတ်သည်။ state ကို တင်းကျပ်စွာ ခွဲထားပါ။

push/pop နှင့် pages ကို ရောသုံးခြင်း

List<PageEntry> ဖြင့် ထိန်းချုပ်ထားပြီးသား stack များအတွက် Navigator.push/pop ကို မခေါ်ပါနှင့်။

state ထဲရှိ Widget

Widget instance များကို page metadata ထဲ မထည့်ပါနှင့်။ key များနှင့် route ဆန်သော identifier များကိုသာ ထားပါ။

ထပ်နေသော key များ

တူညီသော stack ထဲတွင် PageEntry.key တန်ဖိုးများကို ထပ်မသုံးပါနှင့်။

ပြောင်းရွှေ့မှု စစ်ဆေးစာရင်း

ပြန်လည်ဖွဲ့စည်းမှု သုံးသပ်ချက်များအတွင်း ဤစစ်ဆေးစာရင်းကို အသုံးပြု၍ တည်ဆောက်ပုံကို တသမတ်တည်း ထားပါ။

စစ်ဆေးစာရင်း

ကောင်းနှင့် မကောင်း

// မကောင်း: တူညီသော stack အတွက် imperative နှင့် declarative ကို ရောနှောသုံးခြင်း
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// ကောင်း: declarative state ကိုသာ အပ်ဒိတ်လုပ်ပါ
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
သုံးသပ်ရေး အကြံပြုချက်

ကုဒ်ပြန်လည်သုံးသပ်စဉ် stack ပြောင်းလဲမှုများ၏ ပိုင်ဆိုင်မှု ကို ခြေရာခံပြီး တူညီသော stack ကို API မျိုးစုံဖြင့် ပြောင်းလဲသည့် အပြောင်းအလဲများကို ငြင်းပယ်ပါ။

နောက်တစ်ခု

မိတ်ဆက်