По некоторым причинам мне удалось найти решение для моего собственного вопроса.Правильный ответ - создать пользовательский компонент MultiSelect вместо повторного использования компонента из final-form-material-ui
.
. Примечания. Я пытался использовать <Select />
из final-form-material-ui
, но при добавлении multiple
prop к компонентуне будет передано, это странно.
Итак, мой пользовательский компонент будет выглядеть примерно так, почти так же, как и у их github с добавлением multiple
prop.
import React from 'react';
import FormControl from '@material-ui/core/FormControl';
import FormHelperText from '@material-ui/core/FormHelperText';
import InputLabel from '@material-ui/core/InputLabel';
import Select from '@material-ui/core/Select';
function SelectMulti({
input: { name, value, onChange, ...restInput },
meta,
label,
formControlProps,
...rest
}) {
const showError =
((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) &&
meta.touched;
return (
<FormControl {...formControlProps} error={showError}>
<InputLabel htmlFor={name} shrink>
{label}
</InputLabel>
<Select
{...rest}
multiple
name={name}
value={value}
onChange={onChange}
inputProps={restInput}
/>
{showError && (
<FormHelperText>{meta.error || meta.submitError}</FormHelperText>
)}
</FormControl>
);
}
SelectMulti.propTypes = {};
export default SelectMulti;
Надеюсь, это поможет кому-то в будущем