如何读取 FutureProvider 中的 StateNotifierProvider 状态
How to read StateNotifierProvider state inside FutureProvider
我有一个 StateNotifierProvider
,它有一个 class 变量的 getter 和 setter 方法。
我正在尝试通过 FutureProvider
中的 getter 方法访问 class 变量值
我已经尝试了多种方法来访问 FutureProvider 中的值,但无法获得任何成功。
我收到以下错误
errror snapshot
让我知道正确的做法。
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 _selectedPostNotifier = ref.watch(selectedPostProvider.notifier);
如果您想使用状态本身,请使用它。
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);
});
请参阅 this 迁移文档以供参考。
我有一个 StateNotifierProvider
,它有一个 class 变量的 getter 和 setter 方法。
我正在尝试通过 FutureProvider
中的 getter 方法访问 class 变量值
我已经尝试了多种方法来访问 FutureProvider 中的值,但无法获得任何成功。
我收到以下错误
errror snapshot
让我知道正确的做法。
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 _selectedPostNotifier = ref.watch(selectedPostProvider.notifier);
如果您想使用状态本身,请使用它。
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);
});
请参阅 this 迁移文档以供参考。