如何在类构造函数中为Map类型变量指定默认值?

问题描述 投票:2回答:1

我正在尝试创建一个类构造函数,其中唯一的参数是Map类型。

class ProductManager extends StatefulWidget {
  final Map initialProduct;

  ProductManager(this.initialProduct =  {'title': '', 'image': ''});

}

我收到了这两个错误:

命名参数必须用大括号括起来('{'和'}')。dart(named_pa​​rameter_outside_group)


可选参数的默认值必须为constant.dart(non_constant_default_value)

通过以下方式更改我的代码,我解决了第二个错误:

ProductManager(this.initialProduct =  const {'title': '', 'image': ''});

我究竟做错了什么?为什么Map变量与其他类型不同?

dart flutter
1个回答
1
投票

您只能为可选的命名参数提供默认值。命名参数包含在大括号中的构造函数声明中。试试这个:

class ProductManager {
  final Map initialProduct;

  ProductManager({this.initialProduct = const {'title': '', 'image': ''}});
}
© www.soinside.com 2019 - 2024. All rights reserved.