我正在构建一个带有ChangeNotifier提供程序的Flutter应用程序。当应用程序启动时,我调用Firebase API并将结果保存在Provider变量中:
Map<DateTime,List> datesMap;
如何根据第一个变量在同一个Provider中定义另一个变量?例如:
List newList = datesMap[DateTime.now()]
如果我尝试执行此操作,则会出现错误:
无法在初始设定式中存取执行严修成员'params'
如果我将第二个变量放在构造函数中,我将得到一个错误,因为在Firebase API完成之前,第一个变量datesMap
为空。
示例代码:
class ShiftsProvider with ChangeNotifier {
Map<DateTime,List> datesMap;
List newList = datesMap[DateTime.now()];
Future<void> getDatesMapfromFirebase () {
some code...
datesMap = something;
notifyListeners();
return;
}
3条答案
按热度按时间ltskdhd11#
您可以像这样使用
late
:juzqafwq2#
可以使
getter
:w46czmvw3#
因为
datesMap
变量与特定类相关,所以可以用static
关键字标记它,这样就可以解决问题:请注意,如果要使用静态变量,可以按如下方式访问它: