Flutter 继承的小部件不';不要更新其他小部件

Flutter 继承的小部件不';不要更新其他小部件,flutter,Flutter,所以我有一个继承的小部件,它有计数器数据 class FavProvider extends InheritedWidget { FavProvider({Key key, this.child}) : super(key: key, child: child); final Widget child; int counter =0; // bool fav = true; // var favIcon = Icon(Icons.favorite_border, size

所以我有一个继承的小部件,它有计数器数据

class FavProvider extends InheritedWidget 
{
  FavProvider({Key key, this.child}) : super(key: key, child: child);

  final Widget child;
  int counter =0;
  // bool fav = true;
  // var favIcon = Icon(Icons.favorite_border, size: 20, color: Colors.black,);
  static FavProvider of(BuildContext context) {
    return context.dependOnInheritedWidgetOfExactType<FavProvider>();
  }

  @override
  bool updateShouldNotify(FavProvider oldWidget) 
  {
    if(oldWidget.counter != counter)
      return true;
    return false;
  }
}
这里是_反单击方法

  _counterClick()
  {
    setState(() 
    {
      FavProvider.of(context).counter++;
    });
  }
HeroPage(单击Hero小部件后我们要转换到的页面)也有类似的按钮:

GestureDetector
(
  child: Text(ptr.counter.toString(), style: TextStyle(fontSize: 20,), ),
  onTap: _counterClick,
),
和类似的方法

  _counterClick()
  {
    setState(() 
    {
      FavProvider.of(context).counter++;
    });
  }
因此,它们是不同的按钮,但数据相同,ListView有3个ListItem()元素,因此我们得到了3个Hero小部件,每个小部件在主页中都有不同的标记,当单击每个小部件时,会得到带有我们单击的标记的HeroPage()

问题是,当我点击hero小部件时,我可以进入hero页面,点击按钮增加计数器,我可以看到计数器增加,但当我返回主页时,我看不到3小部件上的任何变化,除非我点击增加计数器的按钮(主页中的按钮上的按钮,而不是HeroPage中的按钮)并且更改仅发生在我单击的小部件上,即使我们只有一个计数器与两个页面中的所有按钮关联

  _counterClick()
  {
    setState(() 
    {
      FavProvider.of(context).counter++;
    });
  }