मेरे पास 2 वर्ग हैं, ऐप.जेएस और श्रेणियाँ.जेएस। App.js ने एक एपीआई कहा और श्रेणियों के नाम और श्रेणी की आईडी को JSON में प्राप्त करने में कामयाब रहे, फिर डेटा को इस तरह धकेल दिया जाता है और वर्ग श्रेणी के एक प्रोप में स्थानांतरित हो जाता है

Object.keys(data.categories).forEach((category,index) => {
  categories.push(data.categories[index].name);
  categoryIDs.push(data.categories[index].id)
})


<Categories 
   categoryName = { this.state.categoryName }
   categoryID = { this.state.categoryID }
 />

फिर मेरी श्रेणियाँ वर्ग में, डेटा एक मानचित्र बटन के माध्यम से एक जोड़ी लौटा रहा है, और मैंने एक जोड़ी की तरह सरणी मानों के साथ संबद्ध करने के लिए कुंजी का उपयोग किया है, लेकिन मैं एपीआई को गतिशील रूप से एक्सेस करने के लिए आवश्यक मान प्राप्त करने में मदद करने के लिए मानों को पारित नहीं कर सकता

class Categories extends React.Component {


getResult= async () => {


    const api_call = await fetch(`
    http://callthisapi.com/v1/categories/items?format=json&category=1334134&apiKey=${API_KEY}`)

    // Convert response to json
    const data = await api_call.json();

    console.log(data);
}

render() {

    return (

    <div>
    <br /> 
        { 
            this.props.categoryName.map
                ((name,i) => <button key={i} onClick={this.getResult}> {name} {this.props.categoryID[i]} </button>)
        }
    </div>

जैसा कि आप देख सकते हैं कि 1334134 अभी एक हार्ड कोडित मान है लेकिन संख्या वर्तमान में {this.props.categoryID[i]} में जुड़ी हुई है। मैं संख्या को गतिशील रूप से बदलने की अनुमति कैसे दूं? मैं एक पैरामीटर के माध्यम से मूल्य में पारित करने की कोशिश की लेकिन बाद में सब कुछ टूट गया।

मुझे जो मूल्य चाहिए वह {this.props.categoryID[i]} में है और मैं इसे फ़ंक्शन में नहीं निकाल सकता tl; dr है

1
Kevin 11 अक्टूबर 2018, 21:16

1 उत्तर

सबसे बढ़िया उत्तर

अपने onClick को onClick={() => this.getResult(this.props.categoryID[i])} में बदलें।

फिर getResult एक पैरामीटर स्वीकार कर सकता है: getResult = async (id) => { ... }

एपीआई कॉल: http://callthisapi.com/v1/categories/items?format=json&category=${id}

फ़ंक्शन पास करने के लिए प्रतिक्रिया दस्तावेज़ देखें: https://reactjs.org/docs/faq-functions.html

0
Brandon Mitchell 11 अक्टूबर 2018, 21:35