Flutter AutomaticKeepAliveClientMixin 無(wú)效的原因

使用這個(gè) AutomaticKeepAliveClientMixin 的時(shí)候?yàn)榱吮3挚刂破鞯臓顟B(tài)但是有時(shí)候這個(gè)是無(wú)效的

正常的你在你的控制器里面這樣設(shè)置

class _TaskState extends State<Task> with AutomaticKeepAliveClientMixin{

  @override
  bool get wantKeepAlive => true;

  @override
  Widget build(BuildContext context) {
    super.build(context);
}

}

我也是這樣設(shè)置的但是毫無(wú)軟用,我找了好久發(fā)現(xiàn)這樣設(shè)置應(yīng)該是對(duì)的
你可以去上面的一層控制器找找原因,tabbar 控制器里面
度娘之后找到原因

   body: vcs[context.watch<Counter>().value] //AutomaticKeepAliveClientMixin要配合IndexedStack使用才有效

請(qǐng)把你的tabbar的切換改成這樣

   body: IndexedStack(
        index: context.watch<Counter>().value, //我這邊使用了Provide管理了index 
        children: vcs,
      ), 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容