как включить изменение-переключатель antd

#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;)  })}