Showing
1 changed file
with
41 additions
and
38 deletions
@@ -3,23 +3,23 @@ | @@ -3,23 +3,23 @@ | ||
3 | - [Advantages(Avantajlar)](#advantages(avantajlar)) | 3 | - [Advantages(Avantajlar)](#advantages(avantajlar)) |
4 | - [Maksimum Performans:](#maksimum-performans) | 4 | - [Maksimum Performans:](#maksimum-performans) |
5 | - [Reaktif bir değişken bildirmek](#reaktif-bir-değişken-bildirmek) | 5 | - [Reaktif bir değişken bildirmek](#reaktif-bir-değişken-bildirmek) |
6 | - - [Reaktif bir state'e(duruma) sahip olmak kolaydır.](#reaktif-bir-state'e-(duruma)-sahip-olmak-kolaydır) | ||
7 | - - [Görünümdeki değerleri kullanmak](#using-the-values-in-the-view) | ||
8 | - - [Yeniden oluşturulacak koşullar](#conditions-to-rebuild) | ||
9 | - - [Nerede .obs kullanılabilir](#where-obs-can-be-used) | ||
10 | - - [Listeler hakkında not](#note-about-lists) | ||
11 | - - [Neden .value kullanmak zorundayım?](#why-i-have-to-use-value) | 6 | + - [Reaktif bir state'e(duruma) sahip olmak kolaydır.](#reaktif-bir-state'e(duruma)-sahip-olmak-kolaydır) |
7 | + - [Görünümdeki değerleri kullanmak](#görünümdeki-değerleri-kullanmak) | ||
8 | + - [Yeniden oluşturulacak koşullar](#yeniden-oluşturulacak-koşullar) | ||
9 | + - [Nerede .obs kullanılabilir](#nerede-.obs-kullanılabilir) | ||
10 | + - [Listeler hakkında not](#listeler-hakkında-not) | ||
11 | + - [Neden .value kullanmak zorundayım?](#neden-.value-kullanmak-zorundayım?) | ||
12 | - [Obx()](#obx) | 12 | - [Obx()](#obx) |
13 | - [Çalışanlar](#Çalışanlar) | 13 | - [Çalışanlar](#Çalışanlar) |
14 | - + [Simple State Manager (Basit Durum Yöneticisi)](#simple-state-manager) | ||
15 | - - [Avantajlar](#advantages-1) | ||
16 | - - [Kullanımı](#usage) | ||
17 | - - [Controller'lar nasıl çalışır](#how-it-handles-controllers) | ||
18 | - - [Artık StatefulWidget'lara ihtiyacınız olmayacak](#you-wont-need-statefulwidgets-anymore) | ||
19 | - - [Neden var](#why-it-exists) | ||
20 | - - [Kullanmanın diğer yolları](#other-ways-of-using-it) | ||
21 | - - [Unique IDs (Benzersiz Kimlikler)](#unique-ids) | ||
22 | - + [İki state managers ile Mixing](#mixing-the-two-state-managers) | 14 | + + [Simple State Manager(Basit Durum Yöneticisi)](#simple-state-manager(basit-durum-yöneticisi)) |
15 | + - [Avantajlar](#avantajlar) | ||
16 | + - [Kullanımı](#kullanımı) | ||
17 | + - [Controller'lar nasıl çalışır](#controller'lar-nasıl-çalışır) | ||
18 | + - [Artık StatefulWidget'lara ihtiyacınız olmayacak](#artık-statefulwidget'lara-ihtiyacınız-olmayacak) | ||
19 | + - [Neden var](#neden-vart) | ||
20 | + - [Kullanmanın diğer yolları](#kullanmanın-diğer-yolları) | ||
21 | + - [Unique IDs(Benzersiz Kimlikler)](#unique-ids(benzersiz-kimlikler)) | ||
22 | + + [İki state managers ile Mixing](#İki-state-managers-ile-mixing) | ||
23 | + [GetBuilder vs GetX vs Obx vs MixinBuilder](#getbuilder-vs-getx-vs-obx-vs-mixinbuilder) | 23 | + [GetBuilder vs GetX vs Obx vs MixinBuilder](#getbuilder-vs-getx-vs-obx-vs-mixinbuilder) |
24 | 24 | ||
25 | # State Management (Durum Yönetimi) | 25 | # State Management (Durum Yönetimi) |
@@ -69,7 +69,7 @@ Hepsi bu. *Bu kadar basit* bir şey. | @@ -69,7 +69,7 @@ Hepsi bu. *Bu kadar basit* bir şey. | ||
69 | 69 | ||
70 | Şu andan itibaren, bu reaktif-".obs"(ervables) değişkenlerine _Rx_ adını verebiliriz. | 70 | Şu andan itibaren, bu reaktif-".obs"(ervables) değişkenlerine _Rx_ adını verebiliriz. |
71 | 71 | ||
72 | -Başlık altında ne yaptık? `String` lerin bir `Stream` oluşturduk, `"Jonatas Borges"` initial value'sunu(başlangıç değerini) atadık, `"Jonatas Borges"` kullanan tüm widget'lara artık bu değişkene "ait olduklarını" bildirdik ve _Rx_ değeri değiştiğinde de değişmeleri gerekecek. | 72 | +Başlık altında ne yaptık? `String` lerin bir `Stream` oluşturduk, `"Jonatas Borges"` initial value'sunu(başlangıç değerini) atadık, `"Jonatas Borges"` kullanan tüm widget'lara artık bu değişkene "ait olduklarını" bildirdik ve _Rx_ değeri değiştiğinde de değişmeleri gerekecek. |
73 | 73 | ||
74 | Bu, Dart'ın yetenekleri sayesinde **GetX'in büyüsüdür**. | 74 | Bu, Dart'ın yetenekleri sayesinde **GetX'in büyüsüdür**. |
75 | 75 | ||
@@ -88,9 +88,9 @@ Pekala, görünüşe göre, belirli bir Widget'ı değiştirmek istediğimizde g | @@ -88,9 +88,9 @@ Pekala, görünüşe göre, belirli bir Widget'ı değiştirmek istediğimizde g | ||
88 | Obx (() => Text (controller.name)); | 88 | Obx (() => Text (controller.name)); |
89 | ``` | 89 | ``` |
90 | 90 | ||
91 | -_Ezberlemek için neye ihtiyacın var?_Sadece `Obx(() =>` . | ||
92 | - | 91 | +_Ezberlemek için neye ihtiyacın var?_Sadece `Obx(() =>` . |
93 | 92 | ||
93 | +You are just passing that Widget through an arrow-function into an `Obx()` (the "Observer" of the _Rx_). | ||
94 | Bu Widget'ı bir ok işlevinden bir 'Obx()' (_Rx_'in "Observable") içine geçiriyorsunuz. | 94 | Bu Widget'ı bir ok işlevinden bir 'Obx()' (_Rx_'in "Observable") içine geçiriyorsunuz. |
95 | 95 | ||
96 | `Obx` oldukça akıllıdır ve yalnızca `controller.name`nin değeri değiştiğinde değişecektir. | 96 | `Obx` oldukça akıllıdır ve yalnızca `controller.name`nin değeri değiştiğinde değişecektir. |
@@ -107,18 +107,18 @@ Hayır, sadece bu _Rx_ değişkenini kullanan **belirli Widget**. | @@ -107,18 +107,18 @@ Hayır, sadece bu _Rx_ değişkenini kullanan **belirli Widget**. | ||
107 | 107 | ||
108 | Bu nedenle, **GetX** yalnızca _Rx_ değişkeni değerini değiştirdiğinde ekranı günceller. | 108 | Bu nedenle, **GetX** yalnızca _Rx_ değişkeni değerini değiştirdiğinde ekranı günceller. |
109 | 109 | ||
110 | -``` | 110 | +``` |
111 | 111 | ||
112 | final isOpen = false.obs; | 112 | final isOpen = false.obs; |
113 | 113 | ||
114 | -// Hiçbir şey olmadı. Işte aynı değer. | 114 | +// NOTHING will happen... same value. |
115 | void onButtonTap() => isOpen.value=false; | 115 | void onButtonTap() => isOpen.value=false; |
116 | ``` | 116 | ``` |
117 | 117 | ||
118 | ### Advantages(Avantajlar) | 118 | ### Advantages(Avantajlar) |
119 | 119 | ||
120 | **GetX()**, güncellenen değişkenler üzerinde **ayrıntılı** kontrole ihtiyacınız olduğunda size yardımcı olur. | 120 | **GetX()**, güncellenen değişkenler üzerinde **ayrıntılı** kontrole ihtiyacınız olduğunda size yardımcı olur. |
121 | - | 121 | + |
122 | Bir eylem gerçekleştirdiğinizde tüm değişkenleriniz değiştirileceğinden `unique IDs(benzersiz kimliklere)` ihtiyacınız yoksa, `GetBuilder`ı kullanın, | 122 | Bir eylem gerçekleştirdiğinizde tüm değişkenleriniz değiştirileceğinden `unique IDs(benzersiz kimliklere)` ihtiyacınız yoksa, `GetBuilder`ı kullanın, |
123 | çünkü Simple State Updater(Basit Durum Güncelleyicisi)'dir (`setState ()` gibi bloklar halinde), sadece birkaç kod satırında yapılır. | 123 | çünkü Simple State Updater(Basit Durum Güncelleyicisi)'dir (`setState ()` gibi bloklar halinde), sadece birkaç kod satırında yapılır. |
124 | En az CPU etkisine sahip olmak ve sadece tek bir amacı (_State_ rebuild) yerine getirmek ve mümkün olan en az kaynağı harcamak için basitleştirildi. | 124 | En az CPU etkisine sahip olmak ve sadece tek bir amacı (_State_ rebuild) yerine getirmek ve mümkün olan en az kaynağı harcamak için basitleştirildi. |
@@ -196,15 +196,15 @@ final myMap = <String, int>{}.obs; | @@ -196,15 +196,15 @@ final myMap = <String, int>{}.obs; | ||
196 | final user = User().obs; | 196 | final user = User().obs; |
197 | ``` | 197 | ``` |
198 | 198 | ||
199 | -##### Reaktif bir duruma sahip olmak kolaydır. | 199 | +##### Reaktif bir state'e(duruma) sahip olmak kolaydır. |
200 | 200 | ||
201 | Bildiğimiz gibi, _Dart_ şimdi _null safety_ doğru gidiyor. | 201 | Bildiğimiz gibi, _Dart_ şimdi _null safety_ doğru gidiyor. |
202 | Şu andan itibaren hazırlıklı olmak için, _Rx_ değişkenlerinizi her zaman bir **initial value** ile başlatmalısınız. | 202 | Şu andan itibaren hazırlıklı olmak için, _Rx_ değişkenlerinizi her zaman bir **initial value** ile başlatmalısınız. |
203 | 203 | ||
204 | > Bir değişkeni **GetX** ile _observable_ + _initial value_ değerine dönüştürmek en basit ve pratik yaklaşımdır. | 204 | > Bir değişkeni **GetX** ile _observable_ + _initial value_ değerine dönüştürmek en basit ve pratik yaklaşımdır. |
205 | 205 | ||
206 | -Kelimenin tam anlamıyla bir değişkeninizin sonuna bir " `.obs` " ekleyeceksiniz, ve **bu kadar**, şimdi onu gözlemlenebilir hale getirdiniz, | ||
207 | -ve onun `.value(değer)`'i, _initial value_ olacaktır). | 206 | +Kelimenin tam anlamıyla bir değişkeninizin sonuna bir " `.obs` " ekleyeceksiniz, ve **bu kadar**. Şimdi onu gözlemlenebilir hale getirdiniz, |
207 | +ve onun `.value(değer)`'i, _initial value_ olacaktır. | ||
208 | 208 | ||
209 | ### Görünümdeki değerleri kullanmak | 209 | ### Görünümdeki değerleri kullanmak |
210 | 210 | ||
@@ -339,7 +339,7 @@ class User { | @@ -339,7 +339,7 @@ class User { | ||
339 | var age; | 339 | var age; |
340 | } | 340 | } |
341 | 341 | ||
342 | -// örnek verirken: | 342 | +// örnek: |
343 | final user = User(name: "Camila", age: 18).obs; | 343 | final user = User(name: "Camila", age: 18).obs; |
344 | ``` | 344 | ``` |
345 | 345 | ||
@@ -348,14 +348,14 @@ final user = User(name: "Camila", age: 18).obs; | @@ -348,14 +348,14 @@ final user = User(name: "Camila", age: 18).obs; | ||
348 | Listeler, içindeki nesneler gibi tamamen gözlemlenebilir. Bu şekilde, bir listeye bir değer eklerseniz, onu kullanan widget'ları otomatik olarak yeniden oluşturur. | 348 | Listeler, içindeki nesneler gibi tamamen gözlemlenebilir. Bu şekilde, bir listeye bir değer eklerseniz, onu kullanan widget'ları otomatik olarak yeniden oluşturur. |
349 | 349 | ||
350 | Ayrıca listelerde ".value" kullanmanıza gerek yok, harika dart api'ları bunu kaldırmamıza izin verdi. | 350 | Ayrıca listelerde ".value" kullanmanıza gerek yok, harika dart api'ları bunu kaldırmamıza izin verdi. |
351 | -Ne yazık ki, String ve int gibi ilkel türler genişletilemez, bu da kullanımını sağlar.Değer zorunludur, ancak bunlar için get ve setter'larla çalışıyorsanız bu bir sorun olmayacaktır. | 351 | +Ne yazık ki, String ve int gibi ilkel türler genişletilemez, bu da kullanımını sağlar. Değer zorunludur, ancak bunlar için get ve setter'larla çalışıyorsanız bu bir sorun olmayacaktır. |
352 | 352 | ||
353 | ``` dart | 353 | ``` dart |
354 | -// controller içinde | 354 | +// On the controller |
355 | final String title = 'User Info:'.obs | 355 | final String title = 'User Info:'.obs |
356 | final list = List<User>().obs; | 356 | final list = List<User>().obs; |
357 | 357 | ||
358 | -// view içinde | 358 | +// on the view |
359 | Text(controller.title.value), // .value olması gerekir | 359 | Text(controller.title.value), // .value olması gerekir |
360 | ListView.builder ( | 360 | ListView.builder ( |
361 | itemCount: controller.list.length // listelerin buna ihtiyacı yok | 361 | itemCount: controller.list.length // listelerin buna ihtiyacı yok |
@@ -383,10 +383,10 @@ user.age = 18; | @@ -383,10 +383,10 @@ user.age = 18; | ||
383 | // user değişkenini güncellemenin alternatif bir yolu: | 383 | // user değişkenini güncellemenin alternatif bir yolu: |
384 | user(User(name: 'João', age: 35)); | 384 | user(User(name: 'João', age: 35)); |
385 | 385 | ||
386 | -// view içinde: | 386 | +// on view: |
387 | Obx(()=> Text("Name ${user.value.name}: Age: ${user.value.age}")) | 387 | Obx(()=> Text("Name ${user.value.name}: Age: ${user.value.age}")) |
388 | // model değerlerine .value olmadan da erişebilirsiniz: | 388 | // model değerlerine .value olmadan da erişebilirsiniz: |
389 | -user().name; | 389 | +user().name; |
390 | ``` | 390 | ``` |
391 | 391 | ||
392 | İstemiyorsanız setlerle çalışmak zorunda değilsiniz. "assign" ve "assignAll" api'sini kullanabilirsiniz. | 392 | İstemiyorsanız setlerle çalışmak zorunda değilsiniz. "assign" ve "assignAll" api'sini kullanabilirsiniz. |
@@ -404,6 +404,8 @@ Bu kitaplığın toplam ağırlığı, eksiksiz bir çözüm olmasına rağmen t | @@ -404,6 +404,8 @@ Bu kitaplığın toplam ağırlığı, eksiksiz bir çözüm olmasına rağmen t | ||
404 | 404 | ||
405 | Eğer `.value` dan rahatsızsanız MobX harika bir alternatiftir ve Get ile birlikte kullanabilirsiniz. | 405 | Eğer `.value` dan rahatsızsanız MobX harika bir alternatiftir ve Get ile birlikte kullanabilirsiniz. |
406 | 406 | ||
407 | +If you have no problem with the MobX code generator, or have no problem with the BLoC boilerplate, you can simply use Get for routes, and forget that it has state manager. Get SEM and RSM were born out of necessity, my company had a project with more than 90 controllers, and the code generator simply took more than 30 minutes to complete its tasks after a Flutter Clean on a reasonably good machine, if your project it has 5, 10, 15 controllers, any state manager will supply you well. If you have an absurdly large project, and code generator is a problem for you, you have been awarded this solution. | ||
408 | + | ||
407 | MobX code generator ile bir sorununuz yoksa veya BLoC ilgili bir sorununuz yoksa Get ile route'u kullanabilirsiniz. Get SEM ve RSM ile doğdu, şirketimin 90'dan fazla controller'a sahip bir projesi var.Büyük bir projeniz varsa, oldukça iyi bir makinede bir Flutter Clean'den sonra görevlerini tamamlaması 30 dakikadan fazla sürdü. 5, 10, 15 controller, herhangi bir state manager size yardımcı olacaktır. Büyük bir projeniz varsa ve code generator sizin için bir sorunsa, bu çözüm size verildi. | 409 | MobX code generator ile bir sorununuz yoksa veya BLoC ilgili bir sorununuz yoksa Get ile route'u kullanabilirsiniz. Get SEM ve RSM ile doğdu, şirketimin 90'dan fazla controller'a sahip bir projesi var.Büyük bir projeniz varsa, oldukça iyi bir makinede bir Flutter Clean'den sonra görevlerini tamamlaması 30 dakikadan fazla sürdü. 5, 10, 15 controller, herhangi bir state manager size yardımcı olacaktır. Büyük bir projeniz varsa ve code generator sizin için bir sorunsa, bu çözüm size verildi. |
408 | 410 | ||
409 | Açıkçası, birisi projeye katkıda bulunmak ve bir code generator veya benzeri bir şey oluşturmak istiyorsa, bunu readme'de alternatif olarak bağlantı ekleyeceğim, şimdilik diyorum ki, bunu zaten yapan iyi çözümler var, MobX gibi. | 411 | Açıkçası, birisi projeye katkıda bulunmak ve bir code generator veya benzeri bir şey oluşturmak istiyorsa, bunu readme'de alternatif olarak bağlantı ekleyeceğim, şimdilik diyorum ki, bunu zaten yapan iyi çözümler var, MobX gibi. |
@@ -435,7 +437,7 @@ Tüm çalışanlar (`debounce` dışında), "bool" veya "bool" döndüren bir ca | @@ -435,7 +437,7 @@ Tüm çalışanlar (`debounce` dışında), "bool" veya "bool" döndüren bir ca | ||
435 | Bu "koşul", "callback" işlevinin ne zaman yürütüleceğini tanımlar. | 437 | Bu "koşul", "callback" işlevinin ne zaman yürütüleceğini tanımlar. |
436 | 438 | ||
437 | Tüm çalışanlar, çalışanı iptal etmek için ( `dispose()` aracılığıyla) kullanabileceğiniz bir 'Worker' örneği döndürür. | 439 | Tüm çalışanlar, çalışanı iptal etmek için ( `dispose()` aracılığıyla) kullanabileceğiniz bir 'Worker' örneği döndürür. |
438 | - | 440 | + |
439 | 441 | ||
440 | * **`ever`** | 442 | * **`ever`** |
441 | 443 | ||
@@ -459,7 +461,7 @@ _Rx_ değişkeni her yeni bir değer yaydığında çağrılır. | @@ -459,7 +461,7 @@ _Rx_ değişkeni her yeni bir değer yaydığında çağrılır. | ||
459 | 461 | ||
460 | * NOT: Çalışanlar her zaman bir Controller veya Class başlatırken kullanılmalıdır, bu nedenle her zaman onInit (önerilen), Class oluşturucu veya statefulwidget'in initState üzerinde olmalıdır (bu uygulama çoğu durumda önerilmez, ancak herhangi bir yan etkisi olmamalıdır). | 462 | * NOT: Çalışanlar her zaman bir Controller veya Class başlatırken kullanılmalıdır, bu nedenle her zaman onInit (önerilen), Class oluşturucu veya statefulwidget'in initState üzerinde olmalıdır (bu uygulama çoğu durumda önerilmez, ancak herhangi bir yan etkisi olmamalıdır). |
461 | 463 | ||
462 | -## Simple State Manager (Basit Durum Yöneticisi) | 464 | +## Simple State Manager(Basit Durum Yöneticisi) |
463 | 465 | ||
464 | Get'in son derece hafif ve kolay, ChangeNotifier kullanmayan, özellikle Flutter'a yeni başlayanların ihtiyacını karşılayacak ve büyük uygulamalar için sorun yaratmayacak bir state manager'i var. | 466 | Get'in son derece hafif ve kolay, ChangeNotifier kullanmayan, özellikle Flutter'a yeni başlayanların ihtiyacını karşılayacak ve büyük uygulamalar için sorun yaratmayacak bir state manager'i var. |
465 | 467 | ||
@@ -500,12 +502,12 @@ class Controller extends GetxController { | @@ -500,12 +502,12 @@ class Controller extends GetxController { | ||
500 | } | 502 | } |
501 | // Stateless/Stateful sınıfınızda, artış çağrıldığında Metni güncellemek için Get Builder'ı kullanın | 503 | // Stateless/Stateful sınıfınızda, artış çağrıldığında Metni güncellemek için Get Builder'ı kullanın |
502 | GetBuilder<Controller>( | 504 | GetBuilder<Controller>( |
503 | - init: Controller(), // SADECE ILK SEFERINDE "INIT" YAPIN | 505 | + init: Controller(), // INIT IT ONLY THE FIRST TIME |
504 | builder: (_) => Text( | 506 | builder: (_) => Text( |
505 | '${_.counter}', | 507 | '${_.counter}', |
506 | ), | 508 | ), |
507 | ) | 509 | ) |
508 | -//Controller'ı sadece ilk seferinde "initialize" edin. Aynı controller için ikinci defa ReBuilder kullandıysanız, bunu bir daha yapmayın. Controller, widget içinde "init" işlemi gerçekleştikten sonra otomatik olarak hafızadan kaldırılacaktır. Bunun için endişelenmenize gerek yoktur, Get bunu otomatik olarak yapacaktır. Sadece aynı controller'ı birden fazla kez başlatmadığınıza emin olun yeter. | 510 | +//Initialize your controller only the first time. The second time you are using ReBuilder for the same controller, do not use it again. Your controller will be automatically removed from memory as soon as the widget that marked it as 'init' is deployed. You don't have to worry about that, Get will do it automatically, just make sure you don't start the same controller twice. |
509 | ``` | 511 | ``` |
510 | 512 | ||
511 | **Tamamlandı!** | 513 | **Tamamlandı!** |
@@ -652,7 +654,7 @@ class Controller extends GetxController { | @@ -652,7 +654,7 @@ class Controller extends GetxController { | ||
652 | [...] | 654 | [...] |
653 | } | 655 | } |
654 | // görünümde: | 656 | // görünümde: |
655 | -GetBuilder<Controller>( | 657 | +GetBuilder<Controller>( |
656 | init: Controller(), // Her controller'ı bir kez kullanın | 658 | init: Controller(), // Her controller'ı bir kez kullanın |
657 | builder: (_) => Text( | 659 | builder: (_) => Text( |
658 | '${Controller.to.counter}', //burada | 660 | '${Controller.to.counter}', //burada |
@@ -667,8 +669,8 @@ class Controller extends GetxController { | @@ -667,8 +669,8 @@ class Controller extends GetxController { | ||
667 | // static Controller get to => Get.find(); // static olmadan | 669 | // static Controller get to => Get.find(); // static olmadan |
668 | [...] | 670 | [...] |
669 | } | 671 | } |
670 | -// stateful/stateless class içinde | ||
671 | -GetBuilder<Controller>( | 672 | +// on stateful/stateless class |
673 | +GetBuilder<Controller>( | ||
672 | init: Controller(), // Her controller'ı bir kez kullanın | 674 | init: Controller(), // Her controller'ı bir kez kullanın |
673 | builder: (_) => Text( | 675 | builder: (_) => Text( |
674 | '${Get.find<Controller>().counter}', //burada | 676 | '${Get.find<Controller>().counter}', //burada |
@@ -690,7 +692,7 @@ GetBuilder<Controller>( | @@ -690,7 +692,7 @@ GetBuilder<Controller>( | ||
690 | 692 | ||
691 | ``` | 693 | ``` |
692 | 694 | ||
693 | -### Unique IDs (Benzersiz Kimlikler) | 695 | +### Unique IDs(Benzersiz Kimlikler) |
694 | 696 | ||
695 | Bir widget'ın controller'ını güncellemek istiyorsanız GetBuilder onlara benzersiz kimlikler atayabilirsiniz: | 697 | Bir widget'ın controller'ını güncellemek istiyorsanız GetBuilder onlara benzersiz kimlikler atayabilirsiniz: |
696 | 698 | ||
@@ -734,6 +736,7 @@ bir controller'a T modelinizi ekleyin. | @@ -734,6 +736,7 @@ bir controller'a T modelinizi ekleyin. | ||
734 | class Controller extends GetController with StateMixin<User>{} | 736 | class Controller extends GetController with StateMixin<User>{} |
735 | ``` | 737 | ``` |
736 | 738 | ||
739 | + | ||
737 | `change()` yöntemi istediğimiz zaman State'i değiştirir. | 740 | `change()` yöntemi istediğimiz zaman State'i değiştirir. |
738 | Sadece verileri ve state'i bu şekilde iletin: | 741 | Sadece verileri ve state'i bu şekilde iletin: |
739 | 742 |
-
Please register or login to post a comment