TypeError: Cannot read property 'key' of undefined

Seunghwa's Devlog·2021년 3월 12일
0

const onHandleClickLike = (e) => {
    e.preventDefault();
    setColor("#ff0000");
    if(color == "#ff0000"){
      setColor("#ffffff");
    }

    if(wishlistList.wishlistItems){
      // console.log("product: ", product);
      dispatch(AddToWishlistAction(product, quantityCount, option));
    }else{
      dispatch(DeleteAllFromWishlistAction(product));
      dispatch(AddToWishlistAction(product, quantityCount, option));
    }
    return;
  };

발생원인 : 위 코드처럼 Action에서 첫 번째 인자로 product를 넣어줬기 때문이다.
console.log로 product를 찍어봤는데, null이 떴다. null 이어서 아무값도 들어오지 않은 것이었다.

const ProductCard: React.FunctionComponent<Props> = ({ item }) => {
  const [color, setColor] = useState("#ffffff")
  const router = useRouter();
  const newProduct = item;
  const classes = useStyles();
  const productList = useSelector<RootState, ProductState>(s => s.product);
  const wishlistList = useSelector<RootState, WishlistState>(s => s.wishlist);
  const product = getProduct(productList.items, router.query.slug);

  const [option, setOption] = useState<Option[]>([
    { optionName: '', optionContents: ''},
  ]);

  const dispatch = useDispatch();
  const quantityCount = 1;

  // 좋아요 하트 버튼 클릭 이벤트
  const onHandleClickLike = (e) => {
    e.preventDefault();
    setColor("#ff0000");
    if(color == "#ff0000"){
      setColor("#ffffff");
    }

    if(wishlistList.wishlistItems){
      // console.log("product: ", item);
      dispatch(AddToWishlistAction(item, quantityCount, option));
    }else{
      dispatch(DeleteAllFromWishlistAction(item));
      dispatch(AddToWishlistAction(item, quantityCount, option));
    }
    return;
  };

해결 방법: Action의 첫 번째 인자를 item으로 바꿔서 해결하였다.
console.log로 item을 찍어봤더니 정상적으로 값이 들어가는 것을 확인할 수 있었다.

느낀점 : Debugging을 습관화하자!

profile
에러와 부딪히고 새로운 것을 배우며 성장해가는 과정을 기록합니다!

0개의 댓글