1

我最近在我的颤振项目中切换到空安全,这在使用 Either 类型(来自 dartz 包)时带来了一种新的问题

例如,在我的类中有一些属性之前,如下所示:

Either<Failure, List<Product>> _products;

然后我将有一个功能来获取产品,并在我看来消费它。

但是,现在有了 null 安全性,我需要初始化这个属性,因为它永远不应该为 null,而是我想要一个空列表。

如果我这样做

Either<Failure, List<Product?>> _products = [];

我收到这个错误

A value of type 'List<dynamic>' can't be assigned to a variable of type 'Either<Failure, List<Product?>>'.

所以我的问题是,我怎样才能用一个空列表将此属性初始化为 Either 的正确值?

4

2 回答 2

2

去吧:

Either<Failure, List<Product?>> _products = right([]);
于 2021-05-25T05:01:01.540 回答
-1

您可以使用新的“延迟”关键字来解决此问题

late Either<Failure, List<Product?>> _products;

在此处阅读更多信息

于 2021-05-25T05:03:47.193 回答