gpt4 book ai didi

flutter-bloc - 卡住 - 一组密封类,其中一些具有其他人没有的字段 - 导致 bloc.state 无法访问缺少的字段

转载 作者:行者123 更新时间:2023-12-05 06:56:49 28 4
gpt4 key购买 nike

我有这些针对腕尺状态的密封类:

part of 'logged_out_nickname_cubit.dart';

@freezed
abstract class LoggedOutNickNameState with _$LoggedOutNickNameState {
factory LoggedOutNickNameState.initialised(
LoggedOutNickNameViewModel vm, String nickNameKey, FormGroup form) =
_Initialised;
factory LoggedOutNickNameState.submitted(LoggedOutNickNameViewModel vm) =
_Submitted;
}

这是肘:

import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:reactive_forms/reactive_forms.dart';
import 'package:vepo/domain/user_registration/use-cases/logged_out_use_cases/get_user_field_from_local_use_case.dart';
import 'package:vepo/presentation/modules/logged_out/logged_out_nickname/logged_out_nick_name_view_model.dart';

part 'logged_out_nickname_state.dart';
part 'logged_out_nickname_cubit.freezed.dart';

class LoggedOutNickNameCubit extends Cubit<LoggedOutNickNameState> {
LoggedOutNickNameCubit(
this.vm, this.nickNameKey, this.form, this.getUserFieldFromLocalUseCase)
: super(LoggedOutNickNameState.initialised(vm, nickNameKey, form)) {
form.control(nickNameKey).value =
getUserFieldFromLocalUseCase.invoke(nickNameKey);

form.markAsDirty();
}

void submitPressed() => emit(LoggedOutNickNameState.submitted(vm));
void initialise() =>
emit(LoggedOutNickNameState.initialised(vm, nickNameKey, form));

final LoggedOutNickNameViewModel vm;
final String nickNameKey;
final FormGroup form;
final GetUserFieldFromLocalUseCase getUserFieldFromLocalUseCase;
}

问题是在 View 中,我尝试访问 loggedOutNicknameCubit.state.form 并且由于该表单在其中一个密封类中不存在,因此无法识别为在 bloc 中状态,在我看来不能使用:

The getter 'form' isn't defined for the type 'LoggedOutNickNameState'

修复方法是将字段添加到所有不使用它的密封类,如下所示:

factory LoggedOutNickNameState.submitted(LoggedOutNickNameViewModel vm,
{@nullable @Default(null) FormGroup form}) = _Submitted;

有没有办法消除不涉及将字段作为 null 添加到不需要它的密封类的错误?

最佳答案

您可以使用强制转换来获取这些变量

(loggedOutNicknameCubit.state as _Initialised).form

关于flutter-bloc - 卡住 - 一组密封类,其中一些具有其他人没有的字段 - 导致 bloc.state 无法访问缺少的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65046291/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com