इस वस्तु को देखते हुए में:JSX के लिए ... पाश
lst socials = {
foo: 'http://foo'
}
मैं JSX में यह माध्यम से लूप करना चाहते हैं। यह काम करता है:
let socialLinks = []
let socialBar
for (let social in socials) {
socialLinks.push(<li>
<a alt={social} href={socials[social]}>{ social }</a>
</li>)
}
if (socialLinks) {
socialBar = <div className='align-bottom text-center'>
<ul className='list-inline social-list mb24'>
{socialLinks}
</ul>
</div>
}
लेकिन इस (सामाजिक अपरिभाषित) नहीं करता है:
let socialBar
if (socials) {
socialBar = <div className='align-bottom text-center'>
<ul className='list-inline social-list mb24'>
for(let social in socials)
{<li>
<a alt={social} href={socials[social]}>{ social }</a> // social is undefined
</li>}
</ul>
</div>
}
है क्या कारण social
2 उदाहरण में अपरिभाषित है? मुझे लगता है कि आंतरिक ब्रैकेट के साथ एक स्कोपिंग समस्या है लेकिन मैं इसे ठीक करने में सफल नहीं रहा हूं।
मैं वस्तु कुंजी के साथ एक forEach
कर सकते हैं करते हैं और इस post में के रूप में है, लेकिन इतना मेरे काम कर उदाहरण से अलग नहीं है।
स्पष्ट होने के लिए - मैंने यह काम किया है, मैं बस अपने दूसरे उदाहरण में स्कोपिंग समस्या (या सिंटैक्स त्रुटि अगर) पर स्पष्ट होना चाहता हूं।
'{}' के साथ अपने 'लूप' के आसपास और कोशिश करें। हालांकि यह काम कर सकता है, आमतौर पर क्या किया जाता है, उसी परिणाम को प्राप्त करने के लिए '.map() 'सरणी विधि का उपयोग किया जाता है। –
@DiegoCardoso - नहीं जाना। जब मैं कोशिश करता हूं तो यह वाक्यविन्यास त्रुटि उत्पन्न करता है। जो अजीब बात है क्योंकि मैंने सोचा था कि ब्रैकेट में चीजें किसी भी जेएस हो सकती हैं लेकिन इसे लूप के लिए पसंद नहीं है। एक ही ब्रैकेट में 'मानचित्र' का उपयोग करना काम करता है। – cyberwombat