[React]onClick할 때마다 배열에 요소 추가
5518 단어 React자바스크립트TypeScript
소개
라디오 버튼을 누르면 누른 옵션의 값을 배열에 추가하고 싶었습니다.
방법을 모르고, 기사를 찾아도 꽤 발견되지 않고 고생했기 때문에, 이쪽에 기록해 둡니다.
실현하고 싶은 일
두 개의 라디오 버튼 그룹이 있습니다.
각각 세 가지 옵션이 있으며 사용자가 클릭 한 옵션을 배열에 추가하고 싶습니다.
해결책
const initialValue = Array(selections.length).fill('0');
const [formData, setFormData] = useState<string[]>(initialValue);
const updateSelections = (index: number, value: string) => {
const newFormData = formData.slice();
newFormData[index] = value;
setFormData(newFormData);
};
///...
return (
<div>
<FormLabel>{data.formLabel}</FormLabel>
<RadioGroup onChange={(e) => updateSelections(index, e.target.value)}>
{data.options.map((option) => (
<FormControlLabel
key={option.value}
control={<Radio />}
label={option.label}
value={option.value}
id={option.value}
/>
))}
</RadioGroup>
</div>
);
①formData를 준비
②formData의 초기값을 0으로 한다(initialValue)
③ onChange에 updateSelections를 실행하고 index, 옵션의 value를 건네준다
updateSelections에서는,
(1) newFormData에 의해 formData의 카피를 만든다. (진짜 파괴하고 싶지 않기 때문에)
(2) newFormData [index]에 의해, 배열 · newFormData의 index의 위치에 vlue (선택의 값)를 삽입한다.
(3) (2)의 값을 setFormData에 넣는다.
④formData에 onClick 마다 선택사항의 값이 추가되게 된다
index를 건네주는 것으로, 요소를 판별할 수 있게 되어, 복수개 추가할 수 있게 되었다.
Reference
이 문제에 관하여([React]onClick할 때마다 배열에 요소 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kanako-110/items/41d9f0d9ab8dd056f25e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)