我正在使用Riverpod,我想使用AsyncNotifier,在此提供程序中使用异步值作为默认状态,我已经创建了我的状态,我想使用我的状态而不是默认状态.

如何使用我的状态而不是默认的异步值通知程序?

@riverpod
class ExploreController extends _$ExploreController {
  @override
  Future<UIState<ExploreModel>> build() async {
    final result = await getExploreModel();
    return UIState.success(data: result);
  }

推荐答案

您可以使用Raw类型定义禁用从Stream/FutureAsyncValue的转换.

Raw<Future<UIState<ExploreModel>>> build() async {
  // ...
}

请注意,通常不鼓励禁用AsyncValue转换.


关于Raw类型定义的更多信息:https://riverpod.dev/docs/essentials/websockets_sync#disabling-conversion-of-streamsfutures-to-asyncvalue

Flutter相关问答推荐

使用ThemeProvider不在亮模式和暗模式之间切换

Flutter 蜂窝单元测试

Flutter 对齐:不适用于多行文字

如何将 colored颜色 阴影作为默认容器 colored颜色 应用于自定义窗口小工具?

设置Flutter 中的ListView.Builder()的最小高度

在LinkedIn上分享Fighter和Web的链接会产生不同的结果

从Firestore流式传输单个文档还是整个集合更好?

Flutter:我的应用程序是否需要包含退款购买?

Flutter 中的区域不匹配

在 Flutter 中,SpinEdit 叫什么?

Dart 撕掉 const 构造函数

使用堆栈的自定义按钮

我可以在列表图块下方添加其他小部件吗

我想在一个屏幕上有两个相同区域的列表视图,我该如何设置?

在不丢失游戏状态的情况下从 Flame 游戏导航到 Flutter 小部件

Pub get 尚未运行

如何在 flutter 中制作这种类型的扩展瓦片

Flutter:滚动一个ListWheelScrollView,无法获取选中项的状态

Flutter - 检测手指何时进入容器

如何在 IntroductionScreen 小部件 Flutter 中制作全屏渐变色