2017-05-08 19 views
0

選定多個字段上的onChange未正確選擇適當的值。假設您有一個字段,並且您正在使用SelectMultiple組件。在字段中選擇一個選項不會以redux形式更新狀態。如何使用用Redux表單選擇多個?

<Field name="distroLists" label="Distribution Lists" component= 
{SelectFieldMultiple} type="text"></Field> 

如果選擇字段的多組分是

const onChange = this.props.onChange; 
<select ref={name} value={value} onChange={onChange} multiple> 
     { emptyValue } 
     {(optionList) && optionList.map(current => (
     <option key={current.value} value={current.value}>{current.name}</option>)) 
     } 
</select> 

沒有人有任何想法?

回答

1

我發現你需要使用redux-form中的change函數來手動更改字段的值。

import { change as changeFieldValue } from 'redux-form' 

一旦導入你需要用changeFieldValue從Redux的形式,以使自己的onChange。你需要把所有的選擇的值,並將它們添加到狀態

const onChange = function(event) { 
    let options = event.target.options; 
    let selectedOptions = []; 
    if (options) { 
    for (let x = 0; x < options.length; x++) { 
     if (options[x].selected) { 
     selectedOptions.push(options[x].value); 
     } 
    } 
    if (changeFieldValue) 
     changeFieldValue(name, selectedOptions); 
    } 

其中名稱是從道具帶來英寸然後,您使用此onChange設置您選擇的多個字段上的值