खोज…


परिचय

आंतरिक रूप से एक ही पदानुक्रम से DOM तत्वों की सूची की पहचान करने के लिए प्रतिक्रिया में कुंजियों का उपयोग किया जाता है।

इसलिए यदि आप झूठे तत्वों की सूची दिखाने के लिए एक सरणी पर पुनरावृत्ति कर रहे हैं, तो प्रत्येक झूठे तत्वों को प्रमुख संपत्ति द्वारा निर्दिष्ट एक अद्वितीय पहचानकर्ता की आवश्यकता होती है। यह आमतौर पर आपके डेटाबेस आइटम या सरणी के सूचकांक का आईडी हो सकता है।

टिप्पणियों

सरणी इंडेक्स को कुंजी के रूप में उपयोग करना आमतौर पर अनुशंसित नहीं होता है जब सरणी समय के साथ बदलने जा रही है। रिएक्ट डॉक्स से:

अंतिम उपाय के रूप में, आप एक कुंजी के रूप में सरणी में आइटम के सूचकांक को पारित कर सकते हैं। यह अच्छी तरह से काम कर सकता है यदि आइटम कभी भी फिर से व्यवस्थित नहीं होते हैं, लेकिन सीमाएं धीमी हो जाएंगी।

इस बारे में एक अच्छा उदाहरण: https://medium.com/@robinpokorny/index-as-a-key-is-an-ant-pattern-e0349aece318

किसी तत्व की आईडी का उपयोग करना

यहां हमारे पास todo आइटमों की एक सूची है जो हमारे घटक के प्रॉपर को पास की जाती है।

प्रत्येक टूडू आइटम में एक टेक्स्ट और आईडी प्रॉपर्टी होती है। कल्पना करें कि आईडी प्रॉपर्टी एक बैकएंड डेटास्टोर से आती है और यह एक विशिष्ट संख्यात्मक मान है:

todos = [
  {
    id: 1,
    text: 'value 1'
  },
  {
    id: 2,
    text: 'value 2'
  },
  {
    id: 3,
    text: 'value 3'
  },
  {
    id: 4,
    text: 'value 4'
  },
];

हम प्रत्येक पुनरावृत्त सूची तत्व की मुख्य विशेषता को todo-${todo.id} ताकि प्रतिक्रिया इसे आंतरिक रूप से पहचान सके:

render() {
  const { todos } = this.props;
  return (
    <ul>
      { todos.map((todo) =>
        <li key={ `todo-${todo.id}` }>
          { todo.text }
        </li>
      }
    </ul>
  );
}

सरणी सूचकांक का उपयोग करना

यदि आपके पास अद्वितीय डेटाबेस आईडी नहीं हैं, तो आप इस तरह से अपने सरणी के संख्यात्मक सूचकांक का भी उपयोग कर सकते हैं:

render() {
  const { todos } = this.props;
  return (
    <ul>
      { todos.map((todo, index) =>
        <li key={ `todo-${index}` }>
          { todo.text }
        </li>
      }
    </ul>
  );
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow