#reactjs #formik #react-select
#reactjs #formik #react-select
Вопрос:
Я написал код с помощью react-select и Formik. Я использовал useField()
для компонента select, но когда я попытался изменить значение по умолчанию, я получил пустое выбранное значение.
const SelectField = ({ name, ...selectProps }) => {
const [field, meta, helpers] = useField(name)
return (
<Select
value={field.value}
onChange={(v) => helpers.setValue(v)}
onBlur={() => helpers.setTouched(true)}
{...selectProps}
/>
)
}
тогда это моя реализация для этого компонента
<SelectField
name="category"
defaultValue={values.category.map((c) => {
console.log(c)
return {
value: c,
label: c,
}
})}
closeMenuOnSelect={false}
components={animatedComponents}
isMulti
options={categories.map((c) => {
return {
value: c.name,
label: c.name,
}
})}
/>
предположим, что values.category — это некоторое значение из данных категорий.
Ответ №1:
измените значение этого выбора на field.defaultValue
const SelectField = ({ name, ...selectProps }) => {
const [field, meta, helpers] = useField(name)
return (
<Select
value={field.defaultValue}
onChange={(v) => helpers.setValue(v)}
onBlur={() => helpers.setTouched(true)}
{...selectProps}
/>
)
}
Комментарии:
1. TS2783: ‘значение’ указано более одного раза, поэтому это использование будет перезаписано.