Доступ к базовым данным из классов 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
}

Как правильно это сделать? Создать другого провайдера?

0 ответов

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