मैं अपने कोड में एक अद्यतन के लिए एक शर्त कर रहा हूँ। मूल रूप से, मेरा कोड इस लाइन के साथ काम कर रहा है

{this.state.index === 20 ? this.setState({index: 0,index2: 1}) : null }

(यह लाइन रेंडर में है)

और अब मैं एक चर के साथ तुलना करना चाहता हूं। लेकिन जब मैं कर रहा हूँ

{this.state.index === this.state.list.length ? this.setState({index: 0,index2: 1}) : null }

मुझे त्रुटि है

Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.

मैं दो पंक्तियों के बीच का अंतर नहीं समझता, इसलिए मुझे समझ में नहीं आता कि मुझसे यह गलती क्यों है। क्या कोई मुझे समझा सकता है कि मेरे पास ऐसा क्यों है? धन्यवाद

अद्यतन: मेरा प्रस्तुत करना:

 render() {
    return (
      <div>
          Search Film :
      <form onSubmit={this.mySubmitHandler}>
      <input
        type='text'
        onChange={this.myChangeHandler}
      />
      <input
        type='submit'
      />
      </form>
         {this.state.list.slice(this.state.index, this.state.index2).map(function(stock, id){
         return (<p key={id}> Title : {stock.title}  <br></br>release date : {stock.release_date}<br></br> popularité : {stock.popularity} <br></br> résumé : {stock.overview.substring(0,150)}...</p>)})}

         {this.state.index === this.state.list.length ? this.setState({index: 0,index2: 1}) : null }
     {this.state.index === -1 ? this.setState({index: 0,index2: 1}) : null }


        Top {this.state.list.length} Search : {this.state.index + 1}/ {this.state.list.length}
        <button onClick={() => {this.setState({index: this.state.index + 1,index2: this.state.index2 + 1})}}>Next Film</button>
    <button onClick={() => {this.setState({index: this.state.index - 1,index2: this.state.index2 - 1})}}>Previous Film</button>
    </div>

    );
  }
1
Clore Nora 11 नवम्बर 2020, 12:24

1 उत्तर

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

समस्या मेरे प्रतिपादन में सेटस्टेट थी।

समस्या को ठीक करने के लिए, मैंने अभी-अभी अपनी स्थिति की स्थिति बदली है।

असल में, मेरे प्रतिपादन में, जब मैं बटन का उपयोग कर रहा हूं तो मैं एक फ़ंक्शन को कॉल कर रहा हूं

<button onClick={() => {this.checkclick()}}>Next Film</button>

और फ़ंक्शन पहले जैसा ही कर रहा है

checkclick() {
    this.setState({index: this.state.index + 1,index2: this.state.index2 + 1})
    if (this.state.index === this.state.list.length)
      this.setState({index: 0,index2: 1})
  }
1
Clore Nora 11 नवम्बर 2020, 10:03