فهم استخدام StatefulWidget في Flutter

0

لقد بدأت للتو في العبث مع Flutter ولا أستطيع أن أفهم وجهة نظر StatefulWidget . كل تلك الأدوات تفعل في أي مكان رأيته في البرامج التعليمية وما إلى ذلك State<MyWidget> ودعه يقوم بكل العمل.
على سبيل المثال ، من هذا البرنامج التعليمي (الرسمي):

class RandomWords extends StatefulWidget {
  @override
  createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
  ...
}

ما أريد أن أعرفه هو لماذا تم بناؤه بهذه الطريقة وما هو استخدام الطبقة الخارجية (في مثالي RandomWords ).

شكرا لك مقدما.

2 الاجابة

2
افضل جواب

"الطبقة الخارجية" final ، كل عنصر واجهة مستخدم final . هذا يعني أن كل خصائصه يجب أن تكون final كذلك:

class RandomWords extends StatefulWidget {
  final String name;

  @override
  createState() => new RandomWordsState();
}

class RandomWordsState extends State<RandomWords> {
  String name;

  @override
  void initState() {
    name = widget.name;
    super.initState();
  }

  @override
  Widget build(BuildContext context) => Text(name);

  void someMethod() {
    print(widget.name);
    setState(() => name = 'new name');
  }
}

من State جميع المجالات StatefulWidget يمكن الوصول إليها ومن الواضح أنها لم تتغير لأنها كذلك final .

State ومع ذلك ، يمكن تغيير البيانات . setState سيتم تنفيذ رد الاتصال الخاص به ومن ثم إعادة بناء State (مع البيانات الجديدة).

StatelessWidget يمكن أيضًا إعادة بناء ، أي عندما يقوم أحد الوالدين بإعادة البناء ، ولكن يتم فقد كل حالة ولا يتم الاحتفاظ بالبيانات. هذا هو ما State يتم استخدام ل.

:مؤلف
0

مما أفهمه ، هو حفظ المعلومات حول الأداة. لذلك تقوم بتطبيق setState في كل مرة تريد حفظ متغير أو شيء ما. راجع البرنامج التعليمي حول إضافة التفاعلية في Flutter.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام