飞镖使用Null安全地存储变量

时间:2020-10-18 06:54:29

标签: flutter dart

下面的代码_invoiceInformation中的第一个初始化是null,我正在尝试使用dart null safe在我的flutter应用程序中进行管理

在此代码中,尽管我使用了?操作,但仍然出现错误:

错误:

RangeError (index): Index out of range: no indices are valid: 0 

我想尝试什么:

_invoiceInformation = Hive.box<InvoiceInformation>('invoice_information');
_province.text=_invoiceInformation?.getAt(0)?.province??'';

1 个答案:

答案 0 :(得分:2)

_province.text=_invoiceInformation?.getAt(0)?.province??'';

如果列表_invoiceInformation为空,即具有零个元素,则感知空值的运算符?将允许您访问0处的元素,这会导致错误。

在访问其元素之前,您还必须检查列表是否为空。

if(_invoiceInformation != null && _invoiceInformation.isNotEmpty) {
    _province.text=_invoiceInformation.getAt(0)?.province ?? '';
}