پرسش

آیا می‌تونم به یک React Fragment خاصیت key اضافه کنم؟

Can I add a key prop to a React Fragment?

سوال اینه که آیا میشه به یک <> Fragment خاصیت key اضافه کرد؟ وقتی از Fragments در React استفاده می‌کنیم، معمولاً نمی‌تونیم خاصیت‌هایی مثل key رو بهشون اضافه کنیم. این ویژگی مخصوص به عنصرهای HTML یا کامپوننت‌های React هست. حالا می‌خوام بدونم که آیا راهی هست که به یک Fragment خاصیت key بدیم یا نه.

1403/06/03
پاسخ
محمدامین سعیدی راد
بیوگرافی محمدامین سعیدی راد

در React، Fragments به طور پیش‌فرض امکان دریافت خاصیت key رو ندارند. اما با توجه به نیازهای خاص ممکنه بخواید که Fragments هم key داشته باشن. خوشبختانه، React از نسخه 16.2 به بعد این امکان رو فراهم کرده که با استفاده از <React.Fragment key={someKey}> بتونید به Fragments خاصیت key اضافه کنید.

به طور کلی، اگر شما از نسخه‌های جدیدتر React استفاده می‌کنید، می‌تونید به سادگی از این ویژگی استفاده کنید. این کار مخصوصاً زمانی مفیده که Fragments رو داخل لیست‌ها استفاده می‌کنید و نیاز به شناسایی و مدیریت بهتر هر عنصر دارید.

در زیر یه مثال ساده می‌زنم تا مفهوم رو بهتر متوجه بشید:

import React from 'react';
function ListItems({ items }) {
  return (
   <React.Fragment>
    {items.map((item, index) => (
     <React.Fragment key={index}> // add "key" here
      <h2>{item.title}</h2>
      <p>{item.description}</p>
     </React.Fragment>
   ))}
   </React.Fragment>
);
}
export default ListItems;

در این مثال، ما از key برای هر Fragment استفاده کردیم تا React بتونه به درستی تغییرات رو پیگیری کنه.

پاسخ: 1403/06/03
آخرین آپدیت: 1403/08/01