如何在 Cubit 中使用 CubitState 变量? Flutter/Bloc
How can I use variable of CubitState inside Cubit? Flutter/Bloc
所以我不知道如何从我的 Cubit 状态中获取参数,在这种情况下是 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}';
}
我想在 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());
}
}
在 void takeAnswer() 中,我不想使用上下文将它传递给小部件树中的抛出参数。有什么想法吗?
userAnswersList.add((state as AnswerPicked) .answer);
所以我不知道如何从我的 Cubit 状态中获取参数,在这种情况下是 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}';
}
我想在 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());
}
}
在 void takeAnswer() 中,我不想使用上下文将它传递给小部件树中的抛出参数。有什么想法吗?
userAnswersList.add((state as AnswerPicked) .answer);