flutter - 如何在 FutureProvider 中读取 StateNotifierProvider 状态
问题描述
我有StateNotifierProvider
一个类变量的 getter 和 setter 方法。我正在尝试通过 getter 方法访问类变量值,FutureProvider
我尝试了多种方法来访问 FutureProvider 中的值,但无法获得任何成功。
我收到以下错误错误
快照
让我知道正确的方法。
class SelectedPost extends StateNotifier<String> {
SelectedPost() : super("");
var uuid;
void setPostId(String id) {
uuid = id;
}
String getPostId() {
return uuid;
}
}
在这里,我试图访问 getter 方法来获取uuid
值
final selectedPostProvider = StateNotifierProvider((ref) => new SelectedPost());
final detailPostFuture = FutureProvider<Post>((ref) async {
final _selectedPostProvider = ref.watch(selectedPostProvider);
return fetchDetailPost(_selectedPostProvider.getPostId());
});
解决方案
如果您想使用状态本身,请使用它。
final detailPostFuture = FutureProvider<Post>((ref) async {
final _selectedPostProvider = ref.watch(selectedPostProvider);
});
如果您只想访问成员(如函数、变量),请使用它。
final detailPostFuture = FutureProvider<Post>((ref) async {
final _selectedPostProvider = ref.watch(selectedPostProvider.notifier);
});
如果您想同时使用两者,请使用它。
final detailPostFuture = FutureProvider<Post>((ref) async {
final _selectedPostState = ref.watch(selectedPostProvider);
final _selectedPostProvider = ref.watch(selectedPostProvider.notifier);
});
请参阅此迁移文档以供参考。
推荐阅读
- java - 如何强制 Kafka 消费者使用特定版本的模式?
- azure-databricks - 如何将管道数据传递到 azure ml 管道数据块步骤?
- node.js - TypeError : next() 不是函数
- javascript - 在 JavaScript 中使用列表作为键的最佳方式是什么?
- telegram-bot - Telegram Bot API 编辑媒体组内联键盘
- reactjs - TypeError:arrayObject.sort 不是反应笑话酶中的函数
- ios - 使用“隐藏我的电子邮件”选项问题登录 Apple
- django - 芹菜节拍任务挂起没有任何错误
- visual-studio - 由于缺少引用,无法在 Visual Studio 2019 中安装扩展
- python - Mypy错误:json.decoder.JSONDecodeError:未终止的字符串开始于:行x列y(char z)