首页 > 解决方案 > Flutter 将 Provider Value 存储在变量中,以便在收听时重用它

问题描述

我正在使用Provider-Package 在我的应用程序中存储一些数据。为此,我还Service-Class定义了几个函数。现在问题是我几乎在每个函数中都需要这两个值:

  Year currentYear =
      Provider.of<CurrentlySelectedProvider>(context, listen: true)
          .currentYear;
  Month currentMonth =
      Provider.of<CurrentlySelectedProvider>(context, listen: true)
          .currentMonth;

现在我只是在类的每个方法中调用它。但这似乎有点愚蠢。有没有办法在我的类中的某个地方定义这两个值,这样我就可以用一个简单的变量访问它们,而不必调用。整件事一遍又一遍?

我希望我的问题很清楚。如果您需要更多信息,请告诉我!

标签: flutterclassdartprovider

解决方案


您可以创建一个 getter 函数:

CurrentlySelectedProvider get myProvider => Provider.of<CurrentlySelectedProvider>(context, listen: false);

然后,您可以像这样在每个函数中访问它:

myProvider.currentYear;
myProvider.currentMonth;

推荐阅读