state에 선언된 배열을 삭제하는 하는 방법은 다음과 같습니다.
1) 삭제하고자 하는 배열 데이터의 key 값을 조회합니다.
2) 배열 데이터를 탐색하여 key값과 불일치되는 값을 state에 갱신합니다.
1)의 경우, 삭제하고자 하는 데이터의 onClick 이벤트로 해당 key값을 인자로 넘깁니다.
function Animal({animal,onRemove}){
return(
<li className="animal">
<span>{animal.id} : </span>
<b>{animal.animalType}</b>
<span> {animal.sound}</span>
<button className="delete_button" onClick={()=>onRemove(animal.id)}>삭제</button>
</li>
);
}
2)의 경우, 상위 컴포넌트에서 filter메서드를 사용하여 animal.id와 다른 값을 state에 세팅합니다.
//animals state에 데이터 삭제
const onRemove=(id)=>{
//id가 일치하지 않은 animals의 데이터만 animals로 다시 세팅
setAnimals(animals.filter(animal=>animal.id!=id));
}
* filter 이용방법
배열 . filter (배열 데이터 이름 선언 => 조건문)
결과
반응형
'프론트엔드 > React' 카테고리의 다른 글
리액트 Context API (0) | 2022.05.28 |
---|---|
리액트 배열에 데이터 수정하기 (0) | 2022.05.15 |
리액트 배열에 데이터 추가하기 (0) | 2022.05.13 |
리액트 배열형 자료의 랜더링 (0) | 2022.05.11 |
리액트 useRef(2) 변수관리 (0) | 2022.05.10 |
댓글