如何在 Redux 表单中使用 Select 倍数?
How to Use Select Multiple with Redux Form?
select 多字段上的 onChange 没有正确 select 正确的值。假设您有一个字段并且正在使用 SelectMultiple 组件。 Select在字段中进行选择不会更新 redux 形式的状态。
<Field name="distroLists" label="Distribution Lists" component=
{SelectFieldMultiple} type="text"></Field>
其中 Select 多字段组件是
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>
有人知道吗?
我发现您需要使用 redux-form 中的 change
函数来手动更改字段的值。
import { change as changeFieldValue } from 'redux-form'
导入后,您需要使用 redux-form 中的 changeFieldValue
创建自己的 onChange
。您需要获取所有 selected 值并将它们添加到 state
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
设置 select 多字段
上的值
select 多字段上的 onChange 没有正确 select 正确的值。假设您有一个字段并且正在使用 SelectMultiple 组件。 Select在字段中进行选择不会更新 redux 形式的状态。
<Field name="distroLists" label="Distribution Lists" component=
{SelectFieldMultiple} type="text"></Field>
其中 Select 多字段组件是
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>
有人知道吗?
我发现您需要使用 redux-form 中的 change
函数来手动更改字段的值。
import { change as changeFieldValue } from 'redux-form'
导入后,您需要使用 redux-form 中的 changeFieldValue
创建自己的 onChange
。您需要获取所有 selected 值并将它们添加到 state
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
设置 select 多字段