2016-07-07 118 views
0

我使用react-select,想循環內循環來代表它作爲選擇的值和標籤:通過對象的數組對象

// Inside the component's render: 

var myVar = [ 
    this.props.foo.forEach(function(a){ 
    {value: a.name, label: a.name} // line 83 
    }) 
]; 

//return 

<Select ref="stateSelect" options={myVar} simpleValue clearable={this.state.clearable} 
    name="" 
    value={this.state.bar} onChange={this._myFunc} 
/> 

this._myFunc是不相關的這個問題。我想是這樣的:

var myVar = [ 
    {value: "hello", label: "world"}, 
    // the list goes on 
]; 

與上面的代碼,我有:

Parse Error: Line 83: Unexpected token :

我不是的JavaScript強烈找出這種解決方案,但是這可能嗎?鏈接閱讀?

+1

'{...}'是在這裏被認爲是** block **。可能你需要'someObj = {value:a.name,label:a.name}' – Tushar

回答

2

如果您打算從this.props.foo對象數組初始化myVar然後嘗試

var myVar = this.props.foo.map(function(a){ 
    return {value: a.name, label: a.name} ; 
}); 
+0

失敗的propType:提供給'Option',期望'object'的'array'類型的prop''option'無效。檢查「選擇」的渲染方法。 – Sylar

+0

@Sylar你還在得到'解析錯誤:第83行:意外的標記:'?作爲本聲明的輸出結果,你期望得到什麼? – gurvinder372

+0

在我的第一條評論中出現錯誤。在我的問題中,「這個列表正在進行中」,這是有效的,但我需要數組中的值和標籤。 – Sylar

1

最好的是環中呈現FCT這樣的:

render(){ 
return (
    <div> 
    <Select 
    ref="stateSelect" 
    options={ 
     this.props.foo.map((a) => {name: a.name, label: a.name}) 
    } 
    simpleValue 
    clearable={this.state.clearable} 
    name="" 
    value={this.state.bar} 
    onChange={this._myFunc} 
    /> 
    </div>); 
} 
+0

這是es6嗎? 「胖箭頭」?也許在其他項目中很有用。 – Sylar

+1

是的es6與jsx。你可以在es5 map中使用(function(a){return {name:a.name,label:a.name}}) –