Просмотр 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 TypeAheadFormFieldsuffixIcon, так что там есть немало технологий; Я попытаюсь извлечь его на простом примере.

0 ответов

Другие вопросы по тегам