我正在浏览Riverpod包文档,出于某种原因,“入门”中的基本示例是抛出错误:
未定义的类“WidgetRef”。尝试将名称更改为现有类的名称,或创建名为“WidgetRef”的类。
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
final helloWorldProvider = Provider((_) => 'Hello World');
void main() {
runApp(
ProviderScope(child: MyApp()),
);
}
class MyApp extends ConsumerWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
final String value = ref.watch(helloWorldProvider);
return MaterialApp(
home: Scaffold(
body: Center(
child: Text(value),
),
),
);
}
}pubspec.yaml
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
flutter_riverpod: ^0.14.0+3
dev_dependencies:
flutter_test:
sdk: flutter发布于 2021-08-10 13:47:54
在您的发布规范中,您已经指定了flutter_riverpod: ^0.14.0+3,而WidgetRef只能从1.0.0版本中获得(该版本目前是一个开发版本,而不是一个完整版本)。
在您的Riverpod版本中,可以使用ConsumerWidget,如下所示:
class MyApp extends ConsumerWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context, ScopedReader watch) {
final String value = watch(helloWorldProvider);
return MaterialApp(
home: Scaffold(
body: Center(
child: Text(value),
),
),
);
}
}或者,您可以升级到flutter_riverpod: ^1.0.0-dev.6。
https://stackoverflow.com/questions/68727448
复制相似问题