颤振错误->必须初始化不可为空的“项目”
Posted
技术标签:
【中文标题】颤振错误->必须初始化不可为空的“项目”【英文标题】:Flutter Error -> Non-nullable 'items' must be initialized 【发布时间】:2021-10-29 09:06:18 【问题描述】:class CatalogModel
static List<Item> items;
static Item getById(int id) =>
items.firstWhere((element) => element.id == id, orElse: null);
static Item getByPosition(int pos) => items[pos];
我正在尝试使用静态列表“项目”创建类,但出现以下错误:
必须初始化不可为空的变量“items”。尝试添加一个 初始化表达式。
我该怎么办?
【问题讨论】:
静态列表要么硬编码初始值,要么创建一个构造函数,以便用户将其传入:
选项 1
class CatalogModel
static List<Item> items=[];
static Item getById(int id) =>
items.firstWhere((element) => element.id == id, orElse: null);
static Item getByPosition(int pos) => items[pos];
选项 2
class CatalogModel
final List<Item> items;
const CatalogModel(List<Item>? initialItems):items=initialItems??[];
Item getById(int id) =>
items.firstWhere((element) => element.id == id, orElse: null);
Item getByPosition(int pos) => items[pos];
【讨论】:
【参考方案2】:只需将此static List<Item> items;
转换为static List<Item> items = <Item>[];
【讨论】:
以上是关于颤振错误->必须初始化不可为空的“项目”的主要内容,如果未能解决你的问题,请参考以下文章
必须初始化不可为空的实例字段“_localizedStrings”
Flutter-不可为空的实例字段'questionAnswer','questionText'必须初始化