使用的是 Provider4.3.2
根据教程在 main 中引入 Provider
void main() {
//强制竖屏
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => Counter()),
ChangeNotifierProvider(create: (context) => CartProvider()),
],
child: MyApp(),
));
});
}
首页是用 PageView 切换四个页面分别是:首页-分类-购物车-我的 在首页-分类 下使用
final counter = Provider.of<Counter>(context);
会报错 Error: Could not find the correct Provider<Counter> above this CategoryPage Widget
而 购物车-我的 这两个页面则不会,这两个页面是空白的,尝试吧代码复制给首页-分类都依然报错
Widget build(BuildContext context) {
final counter = Provider.of<Counter>(context);
final cart = Provider.of<CartProvider>(context);
return Scaffold(
appBar: AppBar(
elevation: 0, // 隐藏阴影
title: Text("我的"),
),
body: Center(child: Text("${counter.count}")),
);
}
1
kazeik 2020-10-10 19:03:46 +08:00 via iPhone
加个参数 listen:false 试试
|