如何在flutter中将Either Right初始化为空值

问题描述

我最近在我的 Flutter 项目中切换到了 null-safety,这在使用任一种类型(来自 dartz 包)时带来了一种新的问题

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

Either<Failure,List<Product>> _products;

然后我会有一个函数获取产品,并在我的视图中消费它。

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

如果我这样做

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<Failure,List<Product?>> _products = right([]);
,

您可以使用新的 'late' 关键字来解决此问题

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

阅读更多相关信息here