У меня есть два <CreatableSelect />
для свойств min и max. Есть ли способ отключить некоторые параметры для второго <CreatableSelect />
, если первое <CreatableSelect />
значение меньше второго <CreatableSelect />
параметра?Я использую реагировать-выберите v2.Я знаю, isOptionDisabled
опора доступна, но мне нужно отключить опции, как только один из двух изменится.Я также могу изменить объект параметров, который передается в <CreatableSelect />
, и установить другое свойство isDisabled
, но это неэффективно.
import React from 'react';
import { FormSection, Field } from 'redux-form';
import CreatableSelect from 'react-select/lib/Creatable';
// components
import { LAND_SIZE_OPTIONS } from '../../../../../../constants/search';
const handleInputChange = (newValue, callBack) => {
callBack(false);
};
const handleSelectChange = (newValue, input, callBack) => {
callBack(true);
input.onChange(newValue.value);
};
const RenderSelect = props => (
<CreatableSelect
simpleValue
onChange={newValue => handleSelectChange(newValue, props.input, props.callBack)}
onInputChange={newValue => handleInputChange(newValue, props.callBack)}
options={LAND_SIZE_OPTIONS}
placeholder={props.placeholder}
/>
);
const LandSizeSelect = props => (
<div className="land-size-min-max-container">
<p>Land Size</p>
<div className="menu-select">
<FormSection name="landArea">
<Field
name="min"
component={RenderSelect}
{...{
callBack:
props.overrideDropdownSelectClickOutside,
placeholder: 'Min',
stateValue: props.max,
}}
/>
<Field
name="max"
component={RenderSelect}
{...{
callBack:
props.overrideDropdownSelectClickOutside,
placeholder: 'Max',
stateValue: props.min,
}}
/>
</FormSection>
</div>
</div>
);
export default LandSizeSelect;