2017-06-01 104 views
-2
render() { 
    return (<div> this.list.map(obj => <input value={obj.name} type="checkbox" />)</div>) 
} 

爲什麼上面的代碼不起作用?得到意想不到的令牌通過輸入複選框反應地圖得到意想不到的令牌

+0

如果您打算在React組件中使用它,則需要用大括號包裝代碼。 –

+0

@MichaelLyons現在有什麼問題? https://jsfiddle.net/jwm6k66c/2813/ –

+0

你的div支架符號中有一堆空格。檢查這一個:[https://jsfiddle.net/jwm6k66c/2814/](https://jsfiddle.net/jwm6k66c/2814/) –

回答

1

你忘了包裹map部分{},就這樣寫:

render() { 
    return (
     <div> 
     {this.list.map(obj => <input key={obj.name} value={obj.name} type="checkbox" />)} 
     </div> 
    ) 
} 

指定唯一key到每個輸入元素。

如果列表是一個state變量,那麼你需要編寫this.state.list,不確定如此使用相同的代碼。

+0

將無法​​正常工作https://jsfiddle.net/jwm6k66c/2813/ –

+0

一些格式問題不給不必要的空間,它的工作:https://jsfiddle.net/mayankshukla5031/kncwe7xu/ –

0

您需要將map換成大括號。代碼應該如下:

class HelloWidget extends React.Component { 
    constructor(props) { 
     super(props); 
     this.list = [{ 
     "id": "exhibitions", 
     "name": "Exhibitions" 
     }, { 
     "id": "festivals_n_concerts", 
     "name": "Festivals & Concerts" 
     }, { 
     "id": "grand_opening", 
     "name": "Grand Opening" 
     }] 
    } 

    render() { 
     return ( 
     <div> 
      {this.list.map(obj => <input key={obj.name} value={obj.name} type="checkbox" />)} 
     </div> 
    ) 
    } 


    } 

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

這將工作。 Here is the fiddle

相關問題