用途:该技能用于指导 Riverpod 的代码迁移与版本升级,按不同场景指向对应的参考文件,提供分步说明与代码示例。
主要能力与对应指南:从 StateNotifier 迁移到 Notifier/AsyncNotifier,参考 migration_from_state_notifier.md;从 ChangeNotifier 迁移到 AsyncNotifier,参考 migration_from_change_notifier.md;0.13.x 升级到 0.14.x(涉及 StateNotifierProvider 语法、watch(provider) 与 provider.state),参考 migration_0_13_0_14.md;0.14.x 升级到 1.0(涉及 ScopedReader 改为 WidgetRef、useProvider 改为 ref.watch、StateProvider),参考 migration_0_14_1_0.md。Riverpod 2.0 到 3.0 的迁移见 riverpod-3-0-migration 技能。
常见迁移要点:StateNotifier 改为 Notifier/AsyncNotifier 时,把初始化逻辑放进 build;用 ref.onDispose 替代重载 dispose;没有 mounted,改用取消机制(如 Completer 或 HTTP cancel token);消费端保持不变(ref.watch 与 notifier 上的方法)。ChangeNotifier 改为 AsyncNotifier 时,用 AsyncValue 替代 isLoading/hasError 和手写 try-catch;使用单一 state;通过重新赋值 state 完成变更。
使用方式:打开与自身场景匹配的参考文件,按其中的分步说明和代码示例操作。对于 0.14 和 1.0 升级,可运行 dart pub global activate riverpod_cli,然后在项目中运行 riverpod migrate;不要先手动升级 Riverpod,工具会给出建议的版本与改动。
限制:资料未提供各指南的具体代码细节、支持范围或额外前置条件,需查阅对应参考文件确认。