CodeBlanks Logo Icon CodeBlanks

URL parametreleri

Yol parametreleri ve query string okumayı öğrenirsin.

Yol parametreleri

GoRoute path'inde :id gibi iki nokta ile başlayan adlar yol parametresi tanımlar. builder'a gelen state nesnesinin pathParameters özelliği ile bu değere erişirsin.

GoRoute(
  path: '/kullanici/:id',
  builder: (context, state) {
    final id = state.pathParameters['id']!;
    return KullaniciScreen(id: id);
  },
)

Query parametreleri

URL'deki ?anahtar=deger biçimindeki sorgu dizelerine state.queryParameters ile erişirsin. Örneğin /ara?kelime=elma yolunda state.queryParameters['kelime'] 'elma' değerini verir.

GoRoute(
  path: '/ara',
  builder: (context, state) {
    final kelime = state.queryParameters['kelime'] ?? '';
    return AraScreen(kelime: kelime);
  },
)

Uygulama Yol parametresi ile ekran

/kullanici/:id path'ine sahip bir GoRoute tanımla. builder içinde state.pathParameters['id'] değerini al ve KullaniciScreen(id: id) döndür. main içinde 'hazir' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/widgets.dart';
import 'package:go_router/go_router.dart';

class KullaniciScreen extends StatelessWidget {
  final String id;
  const KullaniciScreen({super.key, required this.id});
  @override
  Widget build(BuildContext context) => const SizedBox.shrink();
}

// /kullanici/:id path'ine sahip GoRoute tanımla
// builder içinde yol parametresini oku
// KullaniciScreen'e id parametresi olarak ver

void main() {
  // 'hazir' yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/widgets.dart';
import 'package:go_router/go_router.dart';

class KullaniciScreen extends StatelessWidget {
  final String id;
  const KullaniciScreen({super.key, required this.id});
  @override
  Widget build(BuildContext context) => const SizedBox.shrink();
}

final route = GoRoute(
  path: '/kullanici/:id',
  builder: (context, state) {
    final id = state.pathParameters['id']!;
    return KullaniciScreen(id: id);
  },
);

void main() {
  print('hazir');
}

Beklenen çıktı

hazir

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 GoRoute path'indeki ':id' neyi belirtir?

  • Bir sabit değer
  • Bir widget adı
  • Bir query parametresi
  • Bir yol parametresi Doğru cevap

Açıklama: İki nokta ile başlayan adlar yol parametresidir; URL'deki o konumdaki değer state.pathParameters ile okunur. Sabit değer değildir, widget adı değildir, query parametresi '?' ile başlar.

2 Yol parametresini oku

Soru
GoRoute(
  path: '/kullanici/:id',
  builder: (context, state) {
    final id = state.____!;
    return KullaniciScreen(id: id);
  },
)
Cevap
GoRoute(
  path: '/kullanici/:id',
  builder: (context, state) {
    final id = state.pathParameters['id']!;
    return KullaniciScreen(id: id);
  },
)

Açıklama: Yol parametreleri state.pathParameters ile okunur. queryParameters '?' ile gelen değerler içindir, params ve route GoRouterState'in özellikleri değildir.

3 Parametre parçaları

Kavram Anlamı
:id yol parametresi tanımı
state.pathParameters yol parametreleri
state.queryParameters sorgu parametreleri
?kelime=elma query string

Orta seviye bölümündeki tüm dersler