SuperAPI AI 工具集

riverpod-mutations

通用与其它

查看项目

更新于 10-16 01:14

技能介绍

用途:Mutations 表示 UI 可响应的单次异步操作(如“添加待办”的进行中、成功或失败),把加载、错误、成功状态从主 provider 状态中分离出来。该 API 为实验性,可能变更。

主要能力:定义 Mutation<T> 实例(T 为结果类型,可选),通常作为全局或 Notifier 上的 static final 保存。在 Consumer 或 provider 内用 ref.watch 监听状态以驱动 UI。状态包括 MutationIdle(未开始或已重置)、MutationPending(进行中)、MutationSuccess(成功,含结果)、MutationError(失败,含错误),可用 switch 分别处理。

使用方式:调用 Mutation.run(ref, callback),回调接收事务对象(如 tsx)以访问 provider,并须返回 T 类型的值;用 tsx.get(provider) 在 mutation 期间保持 provider 存活。传入 key 可创建多个实例(如每个列表项一个 mutation),通过 ref.watch(deleteItemMutation(itemId)) 与 deleteItemMutation(itemId).run(...) 使用。mutation 完成或所有监听者移除时会重置为 Idle,也可手动调用 addTodo.reset(ref)。

适用场景:表单提交、列表项增删等由 UI 触发的异步操作。

限制:API 为实验性,可能变更;具体泛型与最新用法请参考 Riverpod 官方文档。