React

배열에 새로운 원소를 추가할때 콜백함수 사용하자

MDanderson 2023. 5. 19. 12:00

 

 

setNames([...names, name])

 

위 코드는 names 배열의 현재 상태를 직접 참조하여 업데이트합니다. 이 방법은 일반적으로 문제가 되지 않지만, 이전 상태와 새로운 상태 간의 연관성이 중요한 경우나 복잡한 상태 업데이트 로직에서는 예상치 못한 결과를 초래할 수 있습니다. 이는 React의 비동기 상태 업데이트 때문입니다.

 

setNames((prev) => [...prev, name])

 

위 코드는 함수를 인자로 받아 이전 상태를 기반으로 새로운 상태를 계산합니다. 이 방법은 React가 상태 업데이트를 비동기로 처리할 수 있도록 보장하므로, 항상 최신 상태를 기반으로 새로운 상태를 계산할 수 있습니다. 따라서 이전 상태와 새로운 상태 간의 연관성이 중요한 경우에는 이 방법을 추천합니다.

따라서, 두 방식 모두 상황에 따라 적합할 수 있으나, 일관성을 유지하고 싶다면 후자의 방식, 즉 함수를 사용한 상태 업데이트를 추천드립니다.