Просмотр StateNotifier не улавливает следующее состояние
У меня есть этот значок суффикса:
Widget suffixIcon(BuildContext context) {
final isLoading = provider.watch(boolProvider);
return isLoading
? SizedBox(
width: SUFFIX_ICON_WIDTH_LENGTH,
height: SUFFIX_ICON_HEIGHT_LENGTH,
child: Stack(children: [
Positioned(
top: PAD_S,
right: SUFFIX_ICON_PAD,
child: CircularProgressIndicator(
backgroundColor: Theme.of(context).primaryColorDark),
)
]))
: Container(width: 0);
}
И этот уведомитель состояния:
final boolProvider = StateNotifierProvider<BoolStateNotifier, bool>((provider) {
return BoolStateNotifier(isLoading: false);
});
class BoolStateNotifier extends StateNotifier<bool> {
BoolStateNotifier({required bool isLoading}) : super(isLoading);
void setState(bool newState) {
state = newState;
}
}
Я устанавливаю состояние следующим образом:
FutureOr<Iterable<Suggestion<TSuggestion>>> search(String input) async {
if (input.isNotEmpty) {
WidgetsBinding.instance.addPostFrameCallback((_) {
provider.read(boolProvider.notifier).setState(true);
});
final results =
(await repository.search(mapInputToSearchParams(input)))?.data;
provider.read(boolProvider.notifier).setState(false);
The provider.read(boolProvider.notifier).setState(false)
строка действительно выполняется, но значок суффикса, где я его смотрю, не улавливает ложь, поэтому значок отображается навсегда. Есть идеи, почему? Это происходит только при первом поиске. Используется в flutter_typeahead TypeAheadFormField
suffixIcon, так что там есть немало технологий; Я попытаюсь извлечь его на простом примере.