Задать вопрос
@TheSerKat

Как исправить Warning: A component is changing an uncontrolled input to be controlled?

//Изначально приходит ''
 const contactsSelector = useSelector(state => getProfileState(state))
 let [contact, setContact] = useState('')
    useEffect(() => {
        setContact(contactsSelector)
    }, [contactsSelector])
//Потом приходит объект в нем свойства и объекты и это все присваивается в локальный contact
return(
     <Formik
          enableReinitialize
           initialValues={ {...contact} } //И тут проблема тут должно быть по умолчанию ''

//initialValues={'' || {...contact}} не работает
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
1) Почему изначально ты присваиваешь пустую строку, если потом у тебя там лежит объект useState('')? Если ты знаешь структуру объекта contact, сделай пустую структуру с nullами в полях. Если я не прав, и в contact в итоге лежит строка, тогда совсем непонятно зачем ты пытаешся деструктуризировать ее как объект.
2)Ты изначально присваиваешь пусту. строку в contact и тутже пытаешся ее деструктуризировать {...contact} ты книжки читал как эт оработает или чужой код копируешь? https://developer.mozilla.org/en-US/docs/Web/JavaS...
3) В сообщении об ошибке обычно пишется компонент, который вызвал ошибку, и в твоем случае это явно какойто input елемент, а ты пишешь что проблема на уровне формика.
4) //initialValues={'' || {...contact}} не работает Почитай как работает оператор || и к чему равно Boolean("") этот код никогда не будет работать.
Проблема в том, что ты не знаешь элементарных вещей в JS Core а пытаешся использовать деструктуризацию, сайд еффекты в операторах стравнения, начни с книжки, просто почитай базу Javascript
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы