꾸준히 공부하는 개발자

[React] React state array remove (not rendering?) 본문

React

[React] React state array remove (not rendering?)

kauboy 2020. 2. 13. 17:22

react state에서 삭제를 할 일이 생겼다.

하지만 처음에만 리스트가 삭제되어 렌더링되고 그 다음부터는 값이 삭제만되고 렌더링이 되지 않았다.

간단하게 예를 들면,

const [a,setA] = useState([1,2,3,4])
a.splice(0,1)
setA(a)

이런식으로 구현하는 어리석은 짓을 해버렸다..

array 에 추가 삭제할 때는 왠만해서는 mutate 를 하지말라고 한다.

 

그래서 이런식으로 수정을 하였다.

const [a,setA] = useState([1,2,3,4])
const num = 배열의 제거할 원소 index
setA(a.filter((value,index) => index === num ))

rendering 의 문제인줄만 알았던 나는 빙빙돌아 결국 기초적인 부분에서 틀렸다는 것을 확인하였다.

 

참고 https://stackoverflow.com/questions/36326612/delete-item-from-state-array-in-react

Comments