리액트 setstate에서 prev가 왜 업데이트가 안될까요? 채택완료
루2
3년 전
조회 2,205
</p>
<p> <button
type="button"
name="addCard"
data-index={index}
onClick={(e) => {
TotalToggle(e);
}}
></p>
<p> </p>
<p>//element</p>
<p>-------------------------------------------------------------------</p>
<p>//js</p>
<p> const [toggle, setToggle] = useState({</p>
<p> toggleArray: [],</p>
<p> conToggle: [],</p>
<p> addCard: [],</p>
<p> });</p>
<p> </p>
<p> function TotalToggle(e) {</p>
<p> const target = parseInt(e.currentTarget.getAttribute("data-index"));</p>
<p> const typeName = e.currentTarget.name;</p>
<p> if (!toggle[typeName].includes(target)) {</p>
<p> setToggle((prev) => {</p>
<p> return {</p>
<p> [typeName]: [...prev[typeName], target],</p>
<p> };</p>
<p> });</p>
<p> }</p>
<p> }</p>
<p> </p>
<p>
안녕하세요 리액트에서 버튼이 1~5번까지 있다는 가정 누를 때 마다
버튼의 index 0~5를 차례대로 넣을 예정입니다. 근데 함수를 실행 할 시
[1,2,3,4,5] 처럼 되야하는데 [0]>[1]>[2] 이렇게 되서
consolelog(prev[typeName])를 해보니 빈 배열이 뜨더라구여,,, 왜이러는걸까요..
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인