[読書会]Riverpod.dev/docs 翻訳及び補足(Migration guides ^0.13.0 から ^0.14.0 へ)

Riverpod.dev/docs(開始URL: https://riverpod.dev/docs/introduction/why_riverpod )には日本語訳ページ(/ja)も部分的には既にあるのですが、その部分はそのまま参照して、その他の英語訳のままのページについては自力で翻訳および解説を補足してみました。まだ工事中ですが最終的に満足ができたら上記サイトの翻訳ページに献上できないかな等という目標もあります。

本ブログの(上記Riverpod.dev/docsの)翻訳および解説の目次頁(構成上のトップページ)は次のURLになります。

本頁は、上記のうちの、「Migration guides / ^0.13.0 から ^0.14.0」の章の翻訳および解説頁になります。

Migration guides

移行ガイド

^0.13.0 から ^0.14.0 へ

Riverpod のバージョンのリリースに伴い、 StateNotifierProvider0.14.0を使用するための構文が変更されました (説明についてはhttps://github.com/rrousselGit/riverpod/issues/341を参照してください)。

記事全体については、次のStateNotifierを検討してください。

Dart
class MyModel {}

class MyStateNotifier extends StateNotifier<MyModel> {
  MyStateNotifier(): super(MyModel());
}

変更点

1.StateNotifierProviderは、StateNotifierのステートの型を示す追加のジェネリック・パラメータを受け取ります。

(Before)
final provider = StateNotifierProvider<MyStateNotifier>((ref) {
  return MyStateNotifier();
});
(After)
final provider = StateNotifierProvider<MyStateNotifier, MyModel>((ref) {
  return MyStateNotifier();
});

2.StateNotifier を取得する場合は、myProvider の代わりに、myProvider.notifier を読み込む必要があります:

(Before)
Widget build(BuildContext context, ScopedReader watch) {
  MyStateNotifier notifier = watch(provider);
}
(After)
Widget build(BuildContext context, ScopedReader watch) {
  MyStateNotifier notifier = watch(provider.notifier);
}

3.StateNotifierの状態をリッスンするために、myProvider.stateの代わりにmyProviderを読む必要があります。

(Before)
Widget build(BuildContext context, ScopedReader watch) {
  MyModel state = watch(provider.state);
}
(After)
Widget build(BuildContext context, ScopedReader watch) {
  MyModel state = watch(provider);
}

自動移行ツールの利用

バージョン0.14.0で、Riverpod用のコマンドラインツールがリリースされました。

コマンドラインのインストール

移行ツールをインストールするには、次のコマンドを実行します。

Dart
dart pub global activate riverpod_cli

これで、以下を実行できるはずです。

Dart
riverpod --help

コマンドラインがインストールされたので、使用を開始できます。

Usag

コマンドラインがインストールされたので、早速使ってみよう。

1.まず、移行したいプロジェクトをターミナルで開きます。

2.(自分で)リバーポッドをアップグレードしないで下さい。
  移行ツールがRiverpodのバージョンをアップグレードしてくれます。

3.プロジェクトにエラーが含まれていないことを確認して下さい。

4.次のコマンドを実行して下さい。

Dart
riverpod migrate

ツールはあなたのプロジェクトを分析し、変更を提案します。 例えば、

Dart
Widget build(BuildContext context, ScopedReader watch) {
-  MyModel state = watch(provider.state);
+  MyModel state = watch(provider);
}

Accept change (y = yes, n = no [default], A = yes to all, q = quit)? 

変更を受け入れる場合は「y」を、拒否する場合は「N」を押す。

(次の記事はこちら)

コメントを残す