Доступ к базовым данным из классов Freezed union с помощью Riverpod
Я создал эти союзы с помощью Freezed:
abstract class ProductState with _$ProductState {
factory ProductState.loading() = ProductLoading;
factory ProductState.created(Product product) = ProductCreated;
}
Затем у меня есть провайдер, предоставляющий такой класс:
final createProductProvider =
StateNotifierProvider<CreateProductController, ProductState>(
(ref) => CreateProductController(ref));
class CreateProductController extends StateNotifier<ProductState> {
createProduct() {
// create product
state = ProductCreated(product);
}
}
В другом провайдере я хочу получить доступ к базовым данным в объединении, переменной продукта.
До сих пор я делал это так:
if(state is ProductCreated) {
final currentProduct = state.product
}
Как правильно это сделать? Создать другого провайдера?