मैं एक सरणी में प्रत्येक संख्या के लिए कुछ प्रस्तुत करने के लिए मैपिंग के माध्यम से और सरणी के साथ परिचित हूं। लेकिन एक संख्या का उपयोग करके एक ही चीज़ को पूरा करने का एक प्रभावी तरीका क्या है।

मैंने खुद को ऐसी स्थिति में पाया है जहां मेरे पास integer पृष्ठों की संख्या का प्रतिनिधित्व करता है और एक घटक <Page> है जो प्रोप pageNumber लेता है।

मुझे निम्नलिखित रेंडर फ़ंक्शन मिला है:

renderPages() {
  for (let i = 1; i < this.state.numPages; i++) {
    return <Page pageNumber={1} />;
  }
}

renderPages फ़ंक्शन को मेरी कक्षा render फ़ंक्शन में निम्नानुसार कार्यान्वित किया गया है:

render() {
  return (
    <div>
      {this.renderPages()}
    </div>
  );
}

मैं समझता/समझती हूं कि एक बार पहली वापसी हो जाने पर renderPages बाहर निकल जाता है। तो अंत में यह केवल पहला पृष्ठ प्रस्तुत करता है। मैं यहाँ और पेज कैसे प्रस्तुत कर सकता हूँ?

1
Barry Michael Doyle 18 अक्टूबर 2018, 11:50

2 जवाब

renderPages() {
    const arr = []
  for (let i = 1; i <-this.state.numPages; i++) {
    arr.push(<Page pageNumber={1} />)
  }
    return arr
}

render() {
  return (
    <div>
      {this.renderPages().map((item)=>(item))}
    </div>
  );
}
1
Roopak PutheVeettil 18 अक्टूबर 2018, 08:54

एक सरणी में संलग्न करें और फिर सरणी वापस करें।

renderPages() {
    const arr = []
  for (let i = 1; i <-this.state.numPages; i++) {
    arr.push(<Page pageNumber={1} />)
  }
    return arr
}

या आप एक खाली सरणी बनाकर किसी फ़ंक्शन का उपयोग किए बिना ऐसा कर सकते हैं,

render() {
  return (
    <div>
      {(new Array(this.state.numPages)).map((item, i)=><Page pageNumber={i} />)}
    </div>
  );
}
1
Anurag Awasthi 18 अक्टूबर 2018, 09:22