鍍金池/ 問答/HTML/ 在使用getFieldDecorator進行雙向表單綁定時,如果給Select選

在使用getFieldDecorator進行雙向表單綁定時,如果給Select選擇器設置復雜默認值

getFieldDecorator('bindSelect', {initialValue: getFieldValue('binds').map(item => item.title) })(
    <Select mode="multiple" onDeselect={this.removeBindItem} onSelect={this.selectBindItem} filterOption={false}>
        {this.state.bindItems.map(item => 
            <Select.Option id={item._id} title={item.title} key={item._id} value={item.title}>{item.title}</Select.Option>
        )}
    </Select>
)

Option可以設置自定義的屬性 id, title, code...,Select選擇器的onDeselect, onSelect, onSearch事件

function(value, option)

可以通過option來獲得復雜的數(shù)據(jù)對象。這很棒!

可是在通過表單雙向綁定設置Select的默認值時只能是字符串。
因為Option實時檢索出來的值可能標題相同但其它屬性不同,所以希望初始化設置的值除了具有text,還希望有其它屬性。我該如何做到?

回答
編輯回答
毀與悔

1.雖然表單綁定了值,但是你還是可以在select事件或者change事件里獲取到你需要的值
2.也可以把你的value構造成是其他幾個屬性組合起來的形式,比如

value={item.title + ':' + item._id}
或者
value={JSON.stringfy(item)}
2018年5月18日 14:02