Tá saolré ar oibhig State de StatefulWidget — seicheamh modhanna a bhíonn ar a bhualadh agus an widget á chruthú, á uachtar agus á scriosadh (initState, build, didUpdateWidget, dispose, srl.). Tá sé tábhachtach a thuiscint chun acmhainní agus taobhéifeachtaí a bhainistiú i gceart.
Na príomhbhmodhanna an tsamhlairc saol
class _MyWidgetState extends State<MyWidget> {
@override
void initState() {
super.initState();
// called ONCE when the State is created → initialize, start subscriptions,
// fetch initial data, set up controllers/listeners
}
@override
Widget build(BuildContext context) {
// called whenever the UI needs to render (often) → return the widget tree
return Container();
}
@override
void didUpdateWidget(MyWidget oldWidget) {
super.didUpdateWidget(oldWidget);
// called when the parent rebuilds with new config → react to changed inputs
}
@override
void dispose() {
// called when the State is permanently removed → CLEAN UP:
// cancel subscriptions, dispose controllers, close streams (prevent leaks!)
super.dispose();
}
}
An sreabh tipiciúil an tsamhlairc saol
createState → initState (once) → build (many times) → [didUpdateWidget on config change]
→ ... → dispose (once, at the end)
Other: didChangeDependencies (when InheritedWidget dependencies change)
Cén fáth a bhfuil tábhacht ar dispose (cosc a chur ar dhíotheoirí)
⚠️ dispose() is CRITICAL for cleanup — failing to clean up causes MEMORY LEAKS / bugs:
→ cancel Stream subscriptions, Timers; dispose AnimationControllers, TextEditingControllers,
ScrollControllers; close StreamControllers
→ resources started in initState should be cleaned up in dispose
→ A common source of leaks: forgetting to dispose controllers/subscriptions.
Cén fáth a bhfuil sé tábhachtach
Tá sé tábhachtach tuiscint a fháil ar shaolré an StatefulWidget chun acmhainní agus taobhéifeachtaí a bhainistiú i gceart i Flutter, agus mar sin tá eolas praiticiúil luachmhar ann.
Bíonn modhanna an tsamhlairc saol d'oibhig State ar a bhualadh ag pointí ar leith, agus tá sé riachtanach iad a úsáid i gceart: initState (ar a bhualadh go fóill amháin nuair a bhíonn State á chruthú — an áit chun a thosú, sonraí tosaigh a bhreacadh, socrú na fonnsithe agus stiúrthóir/éisteoirí a bhunú), build (ar a bhualadh gach uair a dhéantar an UI a thaiscéaladh, ag filleadh an chrann widgets), didUpdateWidget (ar a bhualadh nuair a dhéanann an tuismitheoir athchóiriú le cumraitheach nua, do fhreagairt ar ionchuir athraithe), agus dispose (ar a bhualadh nuair a bhíonn an Staid bainte go buan).
An sreabh tipiciúil (createState → initState → build arís agus arís eile → dispose) a thuiscint, soiléiríonn sé cathain a ritheann gach ceann.
Is an rud is tabhachtaí ná tuiscint a fháil gur tá dispose riachtanach do ghlanadh tábhachtach: mura ndéantar acmhainní a ghlanadh (cur ar ceal socrú Stream agus Timers, AnimationControllers, TextEditingControllers agus ScrollControllers a dhíchur, StreamControllers a dhúnadh) bíonn díotheoirí cuimhne agus fabhtanna ann — agus is foinse choiteann agus fhíor-dhíotheoirí in aipeanna Flutter a bhíonn i ndearmad stiúrthóir agus socrú a dhíchur.
Tá an phatrún acmhainní a leagan amach in initState agus a ghlanadh in dispose bunúsach do widgets ceart agus gan díotheoirí a scríobh.
Bíonn sé ábalta an saolré a thuiscint a bheith ar dhóigh dheas tosaithe (in initState), ag freagartha do athruithe (in didUpdateWidget), agus go háirithe glanadh (in dispose).
Ó bhíonn acmhainní agus taobhéifeachtaí a bhainistiú i gceart riachtanach d'aipeanna Flutter ceart agus gan díotheoirí, agus ó bhíonn saolré an StatefulWidget (go háirithe initState chun a leagan amach agus dispose do ghlanadh) ina meicníc don sprioc sin, is eolas tábhachtach agus praiticiúil Flutter an saolré an StatefulWidget a thuiscint — na príomhbhmodhanna, an t-am agus go háirithe ról tabhachtach dispose i dtabhair ar dhíotheoirí — le haghaidh widgets stateful ceart a scríobh, scil thabhachtach chun na díotheoirí acmhainní a sheachaint atá ina ghnáthdhuillíog fhíor-dhomhanda i Flutter.
