[React 에러] foreach is not a function

이효린·2023년 9월 25일
0

Error

목록 보기
8/8
post-thumbnail

필터링 기능구현하다가 redux에러

  • useSelector을 통해 redux의 상태 값을 가져오고 있었다.
  • 잘 가져오고 있는 지 확인 차 콘솔에 찍어봤다
const selector = useSelector((state) => state.tag.selectedTag);
console.log('boardList selector', selector);

image

  • 잘 가져왔군 ! 그럼 이제 얘네를 foreach문에 돌려서 selected가 true인 것들만 따로 상태관리를 해주어야겠다.
  • 라고 생각해 아래처럼 코드를 짰는데..
const selector = useSelector((state) => state.tag.selectedTag);
  console.log('boardList selector', selector);

  selector.foreach((tag) => {
    if (tag.selected) {
      setSelectTag(tag.name);
    }
  });

selector. 이런 에러를 마주하게 되었다.

원인

selector의 요소가 배열이 아닌 객체라 발생한 문제였다.

해결방안

객체의 foreach문을 쓰면 된다

Object.keys(selector).forEach((tagKey) => {
      const tag = selector[tagKey];
      if (tag.selected && tag.name !== selectTag) {
        setSelectTag(tag.name);
      }
    });

0개의 댓글

Powered by GraphCDN, the GraphQL CDN