- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有下面的示例,它确实刷新了数据,但没有按预期提供微调器。我尝试使用 ref.listen 切换到异步加载,我尝试在调用前等待,即使它没有意义。
我尝试了 ref.refresh、ref.invalidate...预期行为:打开应用,查看微调器,点击按钮,在文本更改之前再次查看微调器。实际行为:打开应用,看到微调器,点击按钮,文本发生变化,但没有微调器显示。另见 https://github.com/neiljaywarner/riverpod_watching_dep_no_spinner_sample我正在使用 flutter 3.0.5 和 hooks_riverpod: ^2.0.0-dev.9。
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
void main() => runApp(ProviderScope(child: MyApp()));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) => MaterialApp(title: 'Riverpod Spinner Demo',
theme: ThemeData(primarySwatch: Colors.blue), home: MyHomePage());
}
class MyHomePage extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) => Scaffold(
appBar: AppBar(title: const Text('Riverpod Spinner Question'),),
body: ref.watch(futureProvider).when(data: (data) => Column(
children: [
ElevatedButton(onPressed: () => ref.read(paramProvider.notifier).state = 'new value',
child: const Text('pretend update')),
Text(data)],
),
error: (_,__) => const Text('something went wrong'),
loading: () => const CircularProgressIndicator())
);
}
final paramProvider = StateProvider((ref) => 'Initial value');
final futureProvider = FutureProvider.autoDispose<String>((ref) async {
String parameter = ref.watch(paramProvider);
return pretendApiCall(parameter);
});
Future<String> pretendApiCall(String parameter) async {
await Future.delayed(const Duration(seconds: 3));
return parameter;
}
最佳答案
啊。
var asyncValue = ref.watch(futureProvider);
return Scaffold(
appBar: AppBar(title: const Text('Riverpod Spinner Question'),),
body: asyncValue.when(data: (data) {
if (asyncValue.isRefreshing) return const CircularProgressIndicator();
return Column(
children: [
ElevatedButton(onPressed: () => ref.read(paramProvider.notifier).state = 'new value',
child: const Text('pretend update')),
Text(data)],
);
},
关于flutter - 如何使用 flutter riverpod statenotifier、ref watch 和 asyncvalue 获取加载状态/微调器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73588646/
我正在开发一个新的应用程序并使用状态通知器测试 Riverpod,并且有一个关于在构建页面时可以在哪里加载初始数据的问题。 我有以下状态类: abstract class SalesOrderList
我想手动覆盖我的 StateNotifierProvider 状态以进行测试。可以使用 ProviderContainer 或 ProviderScope 覆盖提供程序。但它只提供覆盖通知程序的选项,
在使用 Riverpod 作为我的状态管理工具时,我一直在使用我发现的反模式。我做了用户问的this question did: 更新你想改变的属性并添加state = state。这个解决方案一直有
我是 flutter 和 riverpod 的新手,所以如果问题不清楚,我非常抱歉,如果是这种情况,请告诉我 我有 2 个提供程序,一个监听 FireStore 集合的实时变化,另一个是列表服务,用于
我正在关注 Resocoder tutorial关于如何使用 RiverPod 和 StateNotifier 管理状态。 关于如何在初始加载时使用默认值调用 .getWeather 让我大吃一惊。该
我正在关注 Resocoder tutorial关于如何使用 RiverPod 和 StateNotifier 管理状态。 关于如何在初始加载时使用默认值调用 .getWeather 让我大吃一惊。该
我想学习如何使用 Riverpod ,因此为此,我正在实现一个小应用程序,该应用程序显示一个项目列表和一个按钮,该按钮在点击时将一个虚拟项目添加到列表中。 问题背景 在以下应用中按下按钮会按预期工作(
我有下面的示例,它确实刷新了数据,但没有按预期提供微调器。我尝试使用 ref.listen 切换到异步加载,我尝试在调用前等待,即使它没有意义。 我尝试了 ref.refresh、ref.invali
我是一名优秀的程序员,十分优秀!