Я пытаюсь создать автоселект, если в элементах только один параметр. К сожалению, значения options с сервера передаются несколько раз, что замедляет работу кода и в какой-то момент код перестает работать. появляется ошибка infinite loop
const {setFieldValue, errors, setFieldError} = form
const error = get(errors, name)
const prevOptionsRef = useRef(options)
const [currentOptions, setCurrentOptions] = useState(() => {
if (!isEmpty(other)) {
if (value && other.find((o) => o.value === value.value)) {
return [...options, ...other]
}
return [...options, {label: t('OTHER'), value: 'other_value_button'}]
}
return options
})
const isOnlyOneOption = options.length === 1
const [firstOption] = options
useEffect(() => {
if (isOnlyOneOption) {
console.log('firstOption:', firstOption)
setFieldValue(name, firstOption)
if (error) setFieldError(name, undefined)
}
}, [isOnlyOneOption, firstOption])
На определенном селекте, описанный код перестает работать (перестает работать автоселект), появляется бесконечный цикл