2015-11-17 5 views
6

मैं रेक्टजेस के लिए नया हूं और मेरे पास एक बेवकूफ मुद्दा है, मुझे लगता है, लेकिन मुझे इसका कोई कारण नहीं दिख रहा है। मेरे प्रशिक्षण कोड:ReactJs - सिंटेक्स त्रुटि: एम्बेडेड: अन्तर्निहित जेएसएक्स सामग्री

var ListComponent = React.createClass({ 
    render: function() { 
     return (
      <li>{this.props.value}</li> 
     ); 
    } 
}); 

var TodoComponent = React.createClass({ 
    getInitialState: function() { 
     return { 
      listPoints: [] 
     } 
    }, 
    addListPoint: function(event) { 
     if (event.target.value !== '') { 
      this.setState({ 
       listPoints: this.state.listPoints.push(event.target.value) 
      }); 
     } 
    }, 
    render: function() { 
     var listPoints = []; 
     for (var i=0; i<this.state.listPoints.length; i++) { 
      listPoints.push(
       <ListComponent>{this.state.listPoints[i]}<ListComponent/> 
      ); 
     } 
     return (
      <ul>{listPoints}</ul> 
      <input type="text" onBlur={this.addListPoint}/> 
     ); 
    }, 
}); 


React.render(
    <TodoComponent />, 
    document.getElementById('container') 
); 

और मेरे ट्रैस बैक:

Uncaught SyntaxError: embedded: Unterminated JSX contents (42:21) 
    40 | 
    41 | React.render(
> 42 |  <TodoComponent />, 
    |     ^
    43 |  document.getElementById('container') 
    44 |); 
    45 | 

हर टैग लगती को बंद करना पड़ा। क्या कोई मुझे उस स्थान पर इंगित करता है जहां समस्या शुरू हुई?

+0

आप जेएसएक्स को जेएस में कैसे बदल रहे हैं? वेबपैक + बेबेल? – Tom

उत्तर

12

आप अपनी सूची को ठीक से बंद हो रहा नहीं कर रहे हैं:

<ListComponent>{this.state.listPoints[i]}</ListComponent> 

आप <ListComponent/> लिखा था (कोई सामग्री के साथ एक स्वतः बंद होने वाले टैग)

इसके अलावा, आप क्या करने की जरूरत है कोहेई ताकाता कहते हैं - प्रस्तुत करने के लिए एक मूल तत्व होना चाहिए (हालांकि प्रतिक्रिया 16+ में आप एक सरणी वापस कर सकते हैं या <React.Fragment> में अपने तत्वों को लपेट सकते हैं)।

+1

हाँ। यह बात है। एक अंधे आदमी की मदद के लिए धन्यवाद :) – krzyhub

+0

घटक में त्रुटि React.render() फ़ंक्शन में त्रुटि के रूप में भी दिखाती है ... है ना? – SalindaKrish

3

TodoComponent का कार्य 2 तत्व लौटाता है। मुझे लगता है कि यह एक तत्व होना चाहिए। कृपया 0 तत्वों को <div> या कुछ द्वारा संलग्न करने का प्रयास करें। इस तरह:

<div> 
    <ul>{listPoints}</ul> 
    <input type="text" onBlur={this.addListPoint}/> 
</div> 
+0

दुर्भाग्य से यह समस्या को ठीक नहीं किया। – krzyhub

+0

हो सकता है लेकिन फिर भी यह आपके कोड में अभी भी एक समस्या थी। एक घटक को एक संलग्न टैग में सबकुछ एम्बेड करना होगा। –

+0

हाँ यह अभी भी एक और त्रुटि है –

संबंधित मुद्दे