Как инициализировать Either Right пустым значением во флаттере

Недавно я переключился на нулевую безопасность в своем проекте flutter, что создает проблему нового типа при использовании типа Either (из пакета 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 с пустым списком?

2 ответа

Решение

Сделайте это:

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

вы можете использовать новое ключевое слово 'late', которое устраняет эту проблему

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

подробнее об этом здесь

Другие вопросы по тегам