#javascript #reactjs #radio-button #antd
#язык JavaScript #реагирует на #радиокнопка #антд
Вопрос:
у меня есть вопрос arr и вопрос foreche, я хочу отобразить ответы на вопрос и переключатель antd.
проблема в том, что когда я изменяю какой-либо вопрос, весь ответ также меняется на тот же ответ, который я изменил в первом вопросе . есть ли какой-либо способ сделать ключ или идентификатор для переключателя и изменить его с помощью этого ключа или какой-либо помощи?? это мой код:
import { Radio } from "antd"; const { questions} = props; const [value, setValue] = useState(1); const onChange = e =gt; { setValue(e.target.value); }; {questions.map((question, i) =gt; { return (lt;divgt;lt;divgt;{question.Description}lt;/divgt; lt;Radio.Group value={value} onChange={onChange} gt; lt;Radio value={1}gt;Aיlt;/Radiogt; lt;Radio value={2}gt;Blt;/Radiogt; lt;Radio value={3}gt;Clt;/Radiogt; lt;/Radio.Groupgt;lt;/divgt;) })}
Ответ №1:
Вы должны создать состояние массива или создать дочерний компонент для переключателей, чтобы он имел собственное состояние:
import { Radio } from "antd"; const { questions} = props; const [value, setValue] = useState([]); const onChange = (e, i) =gt; { setValue(prevState =gt; { const newState = [...prevState]; newState[i] = e.target.value; return newState; }); }; {questions.map((question, i) =gt; { return (lt;divgt;lt;divgt;{question.Description}lt;/divgt; lt;Radio.Group value={value[i]} onChange={e =gt; onChange(e,i)} gt; lt;Radio value={1}gt;Aיlt;/Radiogt; lt;Radio value={2}gt;Blt;/Radiogt; lt;Radio value={3}gt;Clt;/Radiogt; lt;/Radio.Groupgt;lt;/divgt;) })}