Tak więc reagowanie na każde naciśnięcie klawisza i aktualizowanie oraz przechowywanie bieżącej wartości pola tekstowego w jakiejś zmiennej jest jednym
ze sposobów obsługi i przechowywania danych wejściowych użytkownika.
Ale oczywiście może być nieco uciążliwe ręczne przechowywanie wszystkich danych wejściowych dla wszystkich pól tekstowych,
które mogą tworzyć twój interfejs użytkownika.
I właśnie dlatego Flutter daje Ci wygodną alternatywę.
Niemniej jednak ważne jest również, aby wiedzieć o tym podejściu, ponieważ jest to również ważne podejście, które
możesz zobaczyć w wielu projektach, nad którymi pracujesz.
Ale alternatywa, którą otrzymujesz, nie wymaga dodania tej funkcji i tej dodatkowej zmiennej do przechowywania.
Zamiast tego dodamy kolejną właściwość, która może być właściwością końcową.
A teraz do tej nowej klasy expense state.
I to jest właściwość, którą można nazwać kontrolerem tytułu.
Teraz nazwa może być trochę dziwna i oczywiście zależy od Ciebie, ale ja wybrałem tutaj tytułowy kontroler,
ponieważ wartość, która będzie przechowywana w tej właściwości będzie obiektem, który jest tworzony
z pomocą wbudowanej klasy kontrolera edycji tekstu, która jest klasą dostarczaną przez Flutter.
Teraz tworzy to obiekt, który jest zoptymalizowany do obsługi danych wejściowych użytkownika.
Można powiedzieć, że obiekt, który można przekazać jako wartość do pola tekstowego, aby pozwolić flutterowi zrobić wszystko ciężkie podnoszenie
przechowywania wprowadzonej wartości i tak dalej.
Teraz, gdy używasz kontrolera edycji tekstu, jest jedna rzecz, która jest naprawdę ważna, aby pamiętać,
chociaż.
Kiedy tworzysz tutaj kontroler edycji tekstu, musisz również powiedzieć Flutterowi, aby usunąć ten kontroler,
gdy widget nie jest już potrzebny.
Tak więc, na przykład, gdy nakładka modalna jest zamknięta, ponieważ w przeciwnym razie ten kontroler
edycji tekstu, który tworzysz tutaj, żyłby dalej w pamięci, mimo że widget nie jest już widoczny.
Dlatego, gdy używasz kontrolera edycji tekstu, powinieneś również zawsze dodawać specjalną metodę dispose do swojej
klasy państwowej tutaj.
Więc metoda o nazwie dispose, która nie zwraca nic i wywołuje super dispose, a przed wywołaniem super dispose, powinieneś
sięgnąć do swojego kontrolera i na tym kontrolerze wywołać metodę dispose, tak aby powiedzieć flutterowi, że ten
kontroler nie jest już potrzebny.
W przeciwnym razie nie zostanie on usunięty.
I ostatecznie twoja pamięć urządzenia może być zajęta przez wszystkie te niepotrzebne sterowniki, a to może spowodować
awarię twojej aplikacji.
Więc dlatego zawsze powinieneś pozbyć się tych kontrolerów edycji tekstu, które możesz tworzyć.
Ale jaki jest teraz pomysł na ten kontroler?
Cóż, mając go utworzonego, możesz przejść do swojego pola tekstowego i pozbyć się tego zmienionego parametru, którego
teraz już nie potrzebujesz.
I zamiast tego możesz ustawić parametr kontrolera i ustawiasz to na kontroler, który powinien być odpowiedzialny
za to pole tekstowe.
Więc jeśli masz wiele pól, potrzebujesz wielu kontrolerów.
I teraz możesz również użyć tego kontrolera tytułu tutaj w funkcji, która jest uruchamiana po naciśnięciu
tego przycisku.
Tutaj możesz uzyskać dostęp do swojego kontrolera tytułu, a następnie na tym obiekcie będziesz miał właściwość text, która, jak można się
domyślić, po prostu zawiera tekst, który użytkownik wprowadził do pola wejściowego.
I dlatego nie musisz ręcznie dbać o przechowywanie tego wejścia zamiast tego.
Flutter robi to za ciebie.
I z tym oczywiście.
Jeśli wrócimy i ponownie otworzymy to i wpiszemy test lub test dwa i klikniemy save expense.
I wracamy do tej konsoli debugowania.
Teraz widzimy to wyjście tutaj w konsoli.
I dlatego właśnie takie podejście zastosujemy teraz w tej części.
I dlatego, ponieważ jest to trochę mniej pracy do zrobienia i dodamy więcej pól tekstowych i nie
chcę ręcznie zarządzać wszystkimi wejściami, użyję tego podejścia kontrolera w tej sekcji tutaj.