تكرار السؤال: …
الإجابة المختصرة
Key تجعل Flutter يطابق Widget جديدًا مع Element سابق عند تغيير ترتيب أو مجموعة siblings، فيحافظ على state الصحيحة.
الشرح
استخدم ValueKey بمعرّف domain مستقر في القوائم القابلة لإعادة الترتيب. لا تضف keys عشوائيًا في كل مكان؛ تغيير key يطلب هوية جديدة ويفقد state القديمة.
مثال بالكود
ListView(
children: items.map((item) => ItemTile(
key: ValueKey(item.id),
item: item,
)).toList(),
)أخطاء شائعة
- استخدام index كهوية لقائمة يمكن إعادة ترتيبها.
- إنشاء UniqueKey في كل build ثم توقع بقاء state.