2016-11-07 104 views
4

我有阵营组分:语义-UI-反应,选择,多,不能设置默认值

<Dropdown 
    placeholder={field[propName].label} 
    id={propName} 
    fluid 
    multiple 
    selection 
    search 
    defaultValue={defaultOptions} 
    options={options} 
/> 

所以optionsdefaultOptions是相同的结构阵列{text: 'string, value: 'string'}

在语义UI源代码,我发现这一点:

/** Initial value or value array if multiple. */ 
    defaultValue: PropTypes.oneOfType([ 
     PropTypes.string, 
     PropTypes.number, 
     PropTypes.arrayOf(PropTypes.oneOfType([ 
     PropTypes.string, 
     PropTypes.number, 
     ])), 
    ]) 

这就是为什么我上面的代码给我错误的原因:

`Warning: Failed propType: Invalid prop `defaultValue` supplied to `Dropdown`. Check the render method of `View`.` 

所以,问题是我应该怎么然后设置默认值多选择下拉式的类型?

回答

4

defaultValue不能成为语义UI反应的对象。它只能是一个价值。 http://react.semantic-ui.com/modules/dropdown。如果您查看defaultValue的道具,则文档会说它可以是字符串,数字或arrayOf。

我通常将我的下拉列表的值设置为 - 使用immutabilityJS - 当它打开时更改。

<Dropdown 
    placeholder={field[propName].label} 
    id={propName} 
    fluid 
    multiple 
    selection 
    search 
    defaultValue={dropdownList.get('forWhat')} 
    options={options} 
    onChange={(e, {value}) => this.updateDropdownList('forWhat',[value:value, text:"works"])} 
/> 
+0

我试图通过字符串值的排列,相同的值我使用{文字:“”,值:“”},对象,而且它仍然无法正常工作 –

+0

我只是想我的代码与[价值:价值,文字:'作品],这是行不通的。你能发布更多的代码吗?也许这是别的 – Craig1123

+0

* [{value:value,text:'works}] - 忘记将该数组添加为选项{} – Craig1123