Я рекомендую вам использовать комбинацию пользовательских компонентов Menu
и isValidNewOption
, например, следующий код:
// For this example the limite will be 5
const Menu = props => {
const optionSelectedLength = props.getValue().length || 0;
return (
<components.Menu {...props}>
{optionSelectedLength < 5 ? (
props.children
) : (
<div>Max limit achieved</div>
)}
</components.Menu>
);
};
function App() {
const isValidNewOption = (inputValue, selectValue) =>
inputValue.length > 0 && selectValue.length < 5;
return (
<div className="App">
<Creatable
components={{ Menu }}
isMulti
isValidNewOption={isValidNewOption}
options={options}
/>
</div>
);
}
Здесь живой пример .
Идея состоит в том, чтобы запретить пользователю доступ к параметрам после предела X (в данном примере 5), а также предотвратить событие клавиатуры enter
при создании через isValidNewOption
prop.