Ana içeriğe atla

^0.13.0'dan ^0.14.0'a

Riverpod'un 0.14.0 sürümünün yayınlanmasıyla birlikte StateNotifierProvider kullanma sözdizimi değişti (açıklama için https://github.com/rrousseGit/riverpod/issues/341 adresine bakın).

Tüm makaleyi görmek için, aşağıdaki StateNotifier'ı göz önünde bulundurun:

class MyModel {}

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

Değişiklikler

  • StateNotifierProvider, StateNotifier'ınızın durum türünde olması gereken ek bir genel parametre alır.

    Önceden:

    final provider = StateNotifierProvider<MyStateNotifier>((ref) {
    return MyStateNotifier();
    });

    Sonra:

    final provider = StateNotifierProvider<MyStateNotifier, MyModel>((ref) {
    return MyStateNotifier();
    });
  • StateNotifier'ı almak için artık sadece myProvider yerine myProvider.notifier okumalısınız:

    Önceden:

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

    Sonra:

    Widget build(BuildContext context, ScopedReader watch) {
    MyStateNotifier notifier = watch(provider.notifier);
    }
  • StateNotifier'ın durumunu dinlemek için artık myProvider.state yerine myProvider okumalısınız:

    Önceden:

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

    Sonra:

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

Projelerinizi yeni sözdizimine otomatik olarak güncellemek için geçiş aracını kullanma

0.14.0 sürümüyle birlikte, projelerinizi geçirmek için size yardımcı olabilecek bir Riverpod komut satırı aracı yayınlandı.

Komut satırını yükleme

Geçiş aracını yüklemek için şunu çalıştırın:

dart pub global activate riverpod_cli

Artık şu komutu çalıştırabilmelisiniz:

riverpod --help

Kullanım

Artık komut satırı aracı yüklendiğine göre, kullanmaya başlayabiliriz.

  • İlk olarak, geçirmek istediğiniz projeyi terminalinizde açın.
  • Riverpod'u güncellemeyin. Geçiş aracı, Riverpod sürümünü sizin için güncelleyecektir.
  • Projenizin hata içermediğinden emin olun.
  • Şunu çalıştırın:
    riverpod migrate

Araç, ardından projenizi analiz edecek ve değişiklikler önerecektir. Örneğin, şunu görebilirsiniz:

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)?

Değişikliği kabul etmek için basitçe y tuşuna basın. Aksi takdirde, reddetmek için n tuşuna basın.