【发布时间】:2022-12-19 14:44:40
【问题描述】:
我正在使用 cubit 进行状态管理。我在状态中有一个变量。当发出其他一些 state 时,它会被重置。
状态文件
class UserState extends Equatable {
final SampleModel? sampleModel;
const UserState({this.sampleModel});
UserState copyWith({String? name, String? avatar}) {
return UserState(
sampleModel: SampleModel(
name: name ?? sampleModel?.name ?? "",
avatar: avatar ?? sampleModel?.avatar ?? ""));
}
@override
List<Object?> get props => [sampleModel];
}
class UserMainLoadingState extends UserState {} // this resets my sampleModel why ?
class UserSavedUpdatedState extends UserState { // One way around is by sending props in every state
UserSavedUpdatedState({required SampleModel sample})
: super(sampleModel: sample);
}
肘锉
Future<void> addSampleUser({required SampleModel sample}) async {
print("I am inside this add sample");
print("State is ${state.sampleModel!}"); // prints sampleModel
emit(UserSideLoadingState());
print("State is ${state.sampleModel!}"); // Null check operator used on a null value
}
为什么会发生这种情况,以及如何在不将 props 传递给每个状态的情况下克服这个问题。
【问题讨论】:
标签: flutter bloc flutter-bloc cubit flutter-cubit