Как инициализировать 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;
подробнее об этом здесь