2017-02-21 65 views
-1

我在我的反應組件中使用映射來遍歷列表。當我在地圖循環中有一個鏈接時它工作正常,但是當我嘗試爲它創建一個優化的構建時,我的第二個鏈接返回一個錯誤。 Intellij給我一個錯誤,說我的<a it expects either a ',' or a ')'後。我看不到我錯過了支架或任何東西。使用映射時反應錯誤

{this.state.players.map(singlePlayer => 
     <Link to={'edit-player/' + singlePlayer.id}><li key={singlePlayer.id}>{singlePlayer.name}</li></Link> 
     <a id={singlePlayer.id} onClick={this.handleDelete.bind(this)}>delete</a> 
            )} 
+0

...你得到什麼錯誤? – Maakep

+0

我想你可能在你完成之前發佈了這個問題,因爲它是如何在句子結尾處結束的。什麼是確切的錯誤信息?這段代碼在哪裏出現?什麼是「鏈接」? (據推測,在某個階段,'Link'將'li'包裝在'ul'或'ol'中?) –

+0

Yashika回答了這個問題,但是謝謝。 –

回答

1

map應該只返回一個元素。所以,你的代碼應該是

{this.state.players.map(singlePlayer => 
    <div><Link to={'edit-player/' + singlePlayer.id}><li key={singlePlayer.id}>{singlePlayer.name}</li></Link> 
    <a id={singlePlayer.id} onClick={this.handleDelete.bind(this)}>delete</a></div> 
           )} 
0

的問題是,您在裏面map返回多個項目,因此不能返回一個以上的元素,所以你需要通過任何divli包裹Linka或通過任何其他元素。試試這個:

{this.state.players.map(singlePlayer => 
    <div> 
     <Link to={'edit-player/' + singlePlayer.id}><li key={singlePlayer.id}>{singlePlayer.name}</li></Link> 
     <a id={singlePlayer.id} onClick={this.handleDelete.bind(this)}>delete</a> 
    </div> 
)}