使用BLoC库时,我们将所有变量存储在状态类中。但是,我们应该把不变的但值会发生变化的TextEditingController放在哪里呢?
假设我有一个像这样的状态类(仅作为示例):
@freezed
abstract class EditItemState with _$EditItemState {
const factory EditItemState.updated({
TextEditingController titleController,
ShoppingItem shoppingItem,
}) = _ShoppingListLoaded;
}
以及 Cubit 类:
class EditItemCubit extends Cubit<EditItemState> {
EditItemCubit() : super(EditItemState.updated());
Future<void> titleUpdated() async {
emit(
EditItemState.updated().copyWith(
shoppingItem: state.shoppingItem.copyWith(
title: state.titleController.text,
),
),
);
}
}
因此Cubit类的逻辑看起来很混乱。我建议将这样的控制器直接放在小部件或BLoC/Cubit类中。这是正确的方法吗?