2017-03-03 82 views
1

我是新來的反應,我有這樣的下面的代碼:陣營:意外的令牌返回

render() { 
     return (
      <div> 
       <form> 
        <input type="text" name="texte" value={this.state.value} onChange={this.handleChange} /> 
        <input type="submit" value="Valider" onClick={this.update} /> 
       </form> 
       var list = this.state.liste.map(function(elt) { 
        return <li>{elt}</li> 
       }); 
       <ul>{list}</ul> 
      </div> 
     ); 
    } 

我有一個語法錯誤:

Unexpected token return <li>{elt}</li> 
       ^

我不明白爲什麼... 謝謝你的幫助!

+0

的JSX語法中添加代碼,如果答案幫你請務必接受它:https://stackoverflow.com/help/accepted-answer – paqash

回答

2

重構你的代碼是這樣的:

render() { 

var list = this.state.liste.map(function(elt) { 
        return <li>{elt}</li> 
       }); 
     return (
      <div> 
       <form> 
        <input type="text" name="texte" value={this.state.value} onChange={this.handleChange} /> 
        <input type="submit" value="Valider" onClick={this.update} /> 
       </form> 

       <ul>{list}</ul> 
      </div> 
     ); 
    } 

render() { 
     return (
      <div> 
       <form> 
        <input type="text" name="texte" value={this.state.value} onChange={this.handleChange} /> 
        <input type="submit" value="Valider" onClick={this.update} /> 
       </form> 
       <ul>{this.state.liste.map(function(elt) { 
        return <li>{elt}</li> 
       });}</ul> 
      </div> 
     ); 
    } 

你不能沒有{}

+0

非常感謝解釋! – Anna

+1

您只能將代碼作爲表達式放在括號內。 –