DEV Community

Cover image for Flutter "Farklar─▒ Ne? ­čśĽ" Serisi
G├╝lsen Keskin
G├╝lsen Keskin

Posted on

Flutter "Farklar─▒ Ne? ­čśĽ" Serisi

Merhaba! Flutter 'da benzer g├Âr├╝nen i┼člevlerin farklar─▒n─▒ merak ediyor musunuz? Sizin de akl─▒n─▒za tak─▒lan "─░kisi de ayn─▒ de─čil mi? Ne farklar─▒ var ki?" diye d├╝┼č├╝nd├╝ren konular─▒ dev'de yorum yap─▒n birlikte ara┼čt─▒r─▒p ├Â─črenelim ne dersiniz? ­čśÇ

B├Âl├╝m 1 ­čśÇ

Navigator.pop(context); ve Navigator.of(context).pop(); aras─▒ndaki fark nedir?

Her iki y├Ântemde mevcut rotay─▒ y─▒─č─▒ndan ├ž─▒kararak bir ├Ânceki rotay─▒ g├Âsterir. ─░ki method aras─▒ndaki fark of() static methodu ve rootNavigator parametresidir. Of() static methodu verilen context'i kapsayan bu s─▒n─▒f─▒n en yak─▒n ├Ârne─činin(instance) durumunu verir.

Navigator.of(context) methodunun Navigator widget'─▒na do─črudan bir referans─▒ yoktur ve rotalar ├╝zerinde i┼člem yapabilmek i├žin verilen BuildContext'in en yak─▒n atas─▒ olan Navigator'─▒ kullan─▒r. Ayr─▒ca varsay─▒lan olarak false de─čerine sahip bir rootNavigator paremetresi al─▒r. E─čer bu parametre true olarak ayarlan─▒rsa bunun yerine en uzaktaki NavigatorState verilir.

Navigator.pop(context) y├Ântemi ise, ├ža─čr─▒ld─▒─č─▒ yerde ge├žerli olan BuildContext nesnesini kullanarak Navigator s─▒n─▒f─▒n─▒n bir ├Ârne─čini elde eder ve bu ├Ârne─či kullanarak y├Ânlendirme i┼člemlerini ger├žekle┼čtirir.

Navigator.

Navigator.pop(context, result)
Enter fullscreen mode Exit fullscreen mode

Navigator.of

Navigator.of(context, rootNavigator: false).pop(result)
Enter fullscreen mode Exit fullscreen mode

Kaynaklar:
https://api.flutter.dev/flutter/widgets/Navigator/of.html
https://api.flutter.dev/flutter/widgets/Navigator-class.html
https://stackoverflow.com/a/71616934/14745090
https://api.flutter.dev/flutter/widgets/Navigator/pop.html
https://stackoverflow.com/a/57457578/14745090

Top comments (2)

Collapse
 
mehmetyaz profile image
Mehmet Yaz

Selamlar. ├ľncelikle ba┼člad─▒─č─▒n bu seri i├žin te┼čekk├╝rler. Faydal─▒ bir i┼č olaca─č─▒ kesin. Fakat d├╝zeltme ihtiyac─▒ hissetti─čim bir ┼čey var.
DM kapal─▒ oldu─ču i├žin burdan belirtiyorum ki:

Bu bilgi yan─▒lt─▒c─▒ ve kafa kar─▒┼čt─▒r─▒c─▒ olabilir. Zira "(1) Navigator.of(context).someMethod()" ile "(2) Navigator.someMethod(context)" aras─▒nda hi├žbir i┼člevsel fark yok. Biri instance method, di─čeri static method. Birinde instance a ula┼čmak i├žin of(BuildContext) metodunu kullan─▒yoruz, di─čerinde static method ayn─▒ "of" metodunu kullanarak instance a ula┼č─▒p gerekli metodu ├ža─č─▒r─▒yor.

Instance a ula┼čmak i├žin context i kullan─▒yoruz ve 1. ├ľrnekte of ile Navigator instance'─▒na ula┼č─▒rken ikincide o static metod ula┼čt─▒─č─▒ i├žin BuildContext i ona veriyoruz.
Dilersen kaynak kodlar─▒na bakabilirsin.

Collapse
 
gulsenkeskin profile image
G├╝lsen Keskin

Cevab─▒n─▒z i├žin ├žok te┼čekk├╝r ederim. Biraz daha ara┼čt─▒r─▒p g├╝ncelleyece─čim ­čśÇ