如何在 Cubit 中使用 CubitState 变量?颤动/块

Gol*_*ake 4 dart flutter bloc flutter-bloc

所以我不知道如何从我的肘状态中获取参数,在这种情况下是 AnswerPicked,状态文件中有一个代码。

part of 'answer_cubit.dart';

abstract class AnswerState extends Equatable {
  const AnswerState();

  @override
  List<Object> get props => [];
}

class AnswerInitial extends AnswerState {}

class AnswerPicked extends AnswerState {
  final String answer;
  AnswerPicked({
    this.answer,
  });
  String toString() => '{AnswerPicked: $answer}';
}
Run Code Online (Sandbox Code Playgroud)

我想在 Cubit 函数中使用它:

part 'answer_state.dart';

class AnswerCubit extends Cubit<AnswerState> {
  final ExamScoreCubit scoreCubit;
  AnswerCubit({
    @required this.scoreCubit,
  }) : super(AnswerInitial());

  List<String> userAnswersList = [];

  void pickAnswer(String answer) {
    emit(AnswerInitial());
    emit(AnswerPicked(answer: answer));
  }

  void takeAnswer(String questionAnswer, int type) {
    if(state is AnswerPicked){
      userAnswersList.add(state.answer); // state.answer don't work
      scoreCubit.checkAnswer(AnswerPicked().answer, questionAnswer, type); // AnswerPicked().answer don't work
    }
    emit(AnswerInitial());
  }
}
Run Code Online (Sandbox Code Playgroud)

在 void takeAnswer() 中,我不想使用上下文在小部件树内传递它的 throw 参数。有什么想法如何去做吗?

Adn*_*ami 5

userAnswersList.add((state as AnswerPicked) .answer); 
Run Code Online (Sandbox Code Playgroud)