वैश्विक कुंजी का उपयोग करके फ़्लटर में एक और विजेट से एक विजेट राज्य को कैसे अपडेट किया जाए?
मेरे पास एक मुख्य विजेट स्क्रीन है जिसमें दो मुख्य विजेट हैंडर है (लाल रंग से चिह्नित है) और एक सूची (बैंगनी के साथ चिह्नित)

यहां मेरे लिए है:
class ScreenClient extends StatefulWidget {
_ClientState createState() => _ClientState();
}
class _ClientState extends State<ScreenClient> {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
ClientHeader(), // this is my header widget red
Expanded(
child: ClientList(), // this is my list widget purple
),
],
);
}
}
हेडर विजेट में तीन विकल्प होते हैं जैसा कि आप देख सकते हैं Tous
Bloqué
और ayant Retard
, मैं जो हासिल करने की कोशिश कर रहा हूं वह बैंगनी के साथ चिह्नित सूची विजेट के लिए क्लिक किए गए विकल्प का मूल्य है (क्योंकि वे विकल्प फिल्टर हैं और सूची तत्वों को आधार पर दिखाया जाना चाहिए। चुने हुए विकल्प)
मेरे पास राज्य प्रबंधन पैकेजों को समझने में कठिन समय है और जो मैं समझता Global Keys
हूं वह ट्रिक कर सकता है लेकिन कैसे? । यहाँ मेरा हेडर विजेट कोड है:
class ClientHeader extends StatefulWidget {
_HeaderClientState createState() => _HeaderClientState();
}
class _HeaderClientState extends State<ClientHeader> {
String nomSituation;
String option = "Tous";
@override
Widget build(BuildContext context) {
return Container(
child: Row(
children: <Widget>[
GestureDetector(
child: Text(
"Tous",
style: TextStyle(
color: option == "Tous" ? Colors.white : Colors.grey[400],
),
),
onTap: () {
setState(() {
option = "Tous";
});
},
),
GestureDetector(
child: Text(
"Bloqué",
style: TextStyle(
color: option == "Bloqué" ? Colors.white : Colors.grey[400],
),
),
onTap: () {
setState(() {
option = "Bloqué";
//add send value to ClientList widet ?
});
},
),
GestureDetector(
child: Text(
"Ayant Retard",
style: TextStyle(
color:
option == "Ayant Retard" ? Colors.white : Colors.grey[400],
),
),
onTap: () {
setState(() {
option = "Ayant Retard";
});
},
),
],
),
);
}
}
जवाब
मेरा सुझाव है कि आप इस वीडियो में 2 उदाहरण देख सकते हैं स्पंदन में व्यावहारिक राज्य प्रबंधन (गूगल मैं / O'19) के बारे में state mangement
। इस वीडियो ने मुझे बहुत मदद की जब मैंने भीख मांगना सीख लिया। वे समझाते हैं कि StatefulWidget
दूसरे से कैसे नियंत्रित किया जाए :
- किसी अन्य विजेट द्वारा नियंत्रित राज्य को वैश्विक बनाएं ( 5m30s से )
Provider
2 विगेट्स ( 15m05s से ) के बीच मान को नियंत्रित करने के लिए, Flutter में एक बहुत लोकप्रिय समाधान है, का उपयोग करें
आपके पास अधिक समय है, आप अधिक फैंसी राज्य प्रबंधन पद्धति जैसे ब्लाक, MobX ( राज्य प्रबंधन दृष्टिकोणों की सूची ) या यहां तक कि Provider
नामित रिवरपॉड के अग्रिम संस्करण का अध्ययन कर सकते हैं , जो कुछ महीने पहले ही पुश करते हैं, जो प्रदाता का उपयोग करते समय कुछ विपक्ष को हल करने का प्रयास करते हैं।