본문 바로가기

React/오류

[오류] Uncaught TypeError: Cannot read properties of undefined (reading 'length') at (파일명.jsx)

 

useState로 배열인 'values' 값을 동적으로 할당해주고,

클릭이벤트가 발생하면 setValues로 값을 다시 할당해주는 로직이였는데

중괄호 {} 와 return 유무때문에 발생한 오류였다.

중괄호는 있지만 return을 써주지 않아 return값인 배열을 인식하지 못했고, 배열의 length를 읽어오지 못해 발생한 오류!!!!

 

아래처럼 써줘야 한다. 

 * 화살표함수 기본 구문은 (  ) => { return ~  } 

 

(중괄호 & return 생략)

const [values, setValues] = useState([]);

....

setValues((prevState) =>
	prevState.filter(item => item.no != no)
);

 

(중괄호 & return 사용)

const [values, setValues] = useState([]);

....

setValues((prevState) => {
	return prevState.filter(item => item.no != no)
});