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