следующему вопросу? (сейчас запоминает каждый предыдущий выбор)
useEffect(()=>{clearShit()}, [questionId])
визуально выбор остается все тем же
радрадиокнопки управляемы или как?
не понимаю о чем ты
объясни
в доке всё есть: https://ru.react.js.org/docs/forms.html#%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B
Через реф хэндлишь или есть состояние для этой радиокнопки?
есть состояние
Короч, лучше будет если в codesandbox.io запилишь нужный тебе код и отправишь сюда
могу описать, что мне нужно при выборе ответа на вопрос(по факту, нажатия на радиокнопку) и последующего нажатия на кнопку “подтвердить” переходить к следующему вопросу и очищать выбор у всех радиокнопок (делать у всех кнопок checked = false)
используй key и будет тебе счастье <Question key={nanoId()} />
Чел мне тоже подари счастье 😅
или <Question key={questionId} /> когда будет меняться questionId, то компонент Question будет рендерится по новой, то есть state будет изначально с дефолтными значениями
руки твои готов целовать
еще бы сказать почему так 😭
никогда так не пиши)
потому что у тебя на каждом рендере будет генериться новый ключ
react reconciliation, если значение родительского компонента обновилось, то происходит unmount, затем mount, react под коробкой создаёт копию дерева для сравнения прошлого компонента и текущего, он видит то что есть компонент <Question /> старого дерева и нового и не рендерит его по новой, так как визуально для него ничего не поменялось, react даёт возможность контролировать рендер компонента через key, по этому его важно указывать при map или следить за его уникальностью
в случае первого примера с nanoId, он будет собирать компонент Question каждый раз при рендере родителя, что не правильно, так что, лучше указывать явный идентификатор для key
а если у меня компонент рендерится без map-a, то ключ не нужен?
Ты это делаешь в рамках обучения? Почитай официальную документацию Там понятно описано, такую базу лучше сначала прочитать чем делать в слепую
нет, не нужен, но в твоём случае тебе нужно рендерить компонент что бы сбрасывать radio
Обсуждают сегодня