1

我有一个带有 CupertinoTabScaffold、CupertinoTabBar 和一系列 BottomNavigationBarItem(s) 的 CupertinoApp。我设法在其中一个 BottomNavigationBarItem(购物篮选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码

在此处输入图像描述

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        backgroundColor: kColorPrimaryLight,
        items: [
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.search),
            title: Text('Discover'),
          ),
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.person_solid),
            title: Text('Account'),
          ),
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.book_solid),
            title: Text('Stories'),
          ),
          BottomNavigationBarItem(
            icon: Badge(
                badgeContent: Text(
                  appData.basketList.length.toString(),
                  style: kDescriptionTextStyle,
                ),
                child: Icon(CupertinoIcons.shopping_cart)),
            title: Text('Basket'),
          ),
        ],
      ),

现在,我想根据在另一个选项卡中触发的事件更新该徽章文本。我将徽章的值存储在单例 ( appData.basketList) 中,并且此信息可用于我的所有屏幕。每次我触发该事件时,appData.basketList.length.toString() 都会更改,但我的徽章不会更改。只有当我热重载时它才会改变......所以这是我的问题:如何更新我的徽章文本?

谢谢 !

4

0 回答 0