2017-03-03 48 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

您只能将代码作为表达式放在括号内。 –