Flutter HookWidget 未知从上下文读取
Flutter HookWidget unknown read from context
今天我想知道为什么在将这些代码定义到项目中后我不能在 HookWidget
中使用 context.read
:
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
中使用 ListView
包裹在 [=18 中时=] 我得到这个错误:
The method 'read' isn't defined for the type 'BuildContext'.
您是否导入了提供商? context.read 是 Provider 的扩展方法。要使用它,您必须导入 Provider。
import 'package:flutter_riverpod/flutter_riverpod.dart';
今天我想知道为什么在将这些代码定义到项目中后我不能在 HookWidget
中使用 context.read
:
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
中使用 ListView
包裹在 [=18 中时=] 我得到这个错误:
The method 'read' isn't defined for the type 'BuildContext'.
您是否导入了提供商? context.read 是 Provider 的扩展方法。要使用它,您必须导入 Provider。
import 'package:flutter_riverpod/flutter_riverpod.dart';