Неизвестное чтение Flutter HookWidget из контекста

Сегодня мне интересно, почему я не могу использовать context.read внутри HookWidget после определения этих кодов в проекте:

      class FavoriteAddressBottomSheet extends HookWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
        child: Material(
          color: Colors.transparent,
          child: Container(
            ...
            child: Column(
              children: [
                ValueListenableBuilder(
                    valueListenable: _address.listenable(),
                    builder: (BuildContext context, Box address, __) {
                      return Expanded(
                        child: ListView.builder(
                          padding: EdgeInsets.zero,
                          itemBuilder: (context, index) {
                            return GestureDetector(
                              onTap: ()=> context.read(orderStateNotifierProvider.notifier).updateAddress(),
                              child: Container(
                                  ...
                            );
                          },
                          itemCount: _address.length,
                        ),
                      );
                    }),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

мой orderStateNotifierProvider а также updateAddress верны, потому что я использовал их в проекте, но когда я пытаюсь использовать внутри которых ListView завернутый в ValueListenableBuilder я получаю эту ошибку:

      The method 'read' isn't defined for the type 'BuildContext'.

1 ответ

Решение

Вы импортировали провайдера? context.read - это метод расширения от Provider. Чтобы использовать его, вам необходимо импортировать Provider.

      import 'package:flutter_riverpod/flutter_riverpod.dart';
Другие вопросы по тегам