flutterdartgetterriverpodfreezed

Flutter Freezed 3.0.0 with riverpod


I recently upgraded my Freezed from 2.x.x to 3.x.x. After the upgrade, my Riverpod state file gave me an error, indicating that I need concrete getters. I couldn't find any information, as it has only just been released. Now I'm trying to get it resolved. Can anyone assist me?

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part 'premium.userdata.freezed.dart';

final premiumUserStateProvider = NotifierProvider<PremiumDataProvider, PremiumDataState>(() {
  return PremiumDataProvider();
});

@freezed
class PremiumDataState with _$PremiumDataState {
  const factory PremiumDataState({
    @Default(false) bool premium,
    @Default(0) int aiCredits,
  }) = _PremiumDataState;
}

class PremiumDataProvider extends Notifier<PremiumDataState> {
  @override
  PremiumDataState build() {
    return const PremiumDataState();
  }
}
Missing concrete implementations of 'getter _$PremiumDataState.aiCredits' and 'getter _$PremiumDataState.premium'.
Try implementing the missing methods, or make the class abstract.dartnon_abstract_class_inherits_abstract_member

Solution

  • You need to make PremiumDataState abstract or sealed.

    Follow the migration guide from v2 to v3 for more information.