해결된 질문
작성
·
211
0
PostRecommends에서 전달한 post를 Post 컴포넌트에서 받아 표시하면 User에서만 오류가 발생합니다.
User에 대한 정보를 다 받아오는데 Post 컴포넌트에서는 아무것도 표시되지 않습니다.
프로필 탭을 눌러 User.id 페이지로 이동하면 오류가 발생합니다.
Cannot read properties of undefined (reading 'User')
User에 옵셔널 체이닝을 붙여도 동일한 오류가 발생합니다.
Post 코드 첨부합니다.
import { Post as IPost } from "@/model/Post";
dayjs.locale("ko");
dayjs.extend(relativeTime);
type Props = {
noImage?: boolean;
post: IPost;
};
export default function Post({ noImage, post }: Props) {
const target: IPost = post;
if (Math.random() > 0.5 && !noImage) {
target?.Images.push(
{ imageId: 1, link: faker.image.urlLoremFlickr() },
{ imageId: 2, link: faker.image.urlLoremFlickr() },
{ imageId: 3, link: faker.image.urlLoremFlickr() },
{ imageId: 4, link: faker.image.urlLoremFlickr() }
);
}
return (
<PostArticle post={target}>
<div className={style.postWrapper}>
<div className={style.postUserSection}>
<Link href={`/${target.User?.id}`} className={style.postUserImage}>
<img src={target.User.image} alt={target.User.nickname} />
<div className={style.postShade} />
</Link>
</div>
<div className={style.postBody}>
<div className={style.postMeta}>
<Link href={`/${target.User.id}`}>
<span className={style.postUserName}>{target.User.nickname}</span>
<span className={style.postUserId}>@{target.User.id}</span>
·
</Link>
<span className={style.postDate}>
{dayjs(target.createdAt).fromNow(true)}
</span>
</div>
<div>{target.content}</div>
<div>
<PostImages post={target} />
</div>
<ActionButtons />
</div>
</div>
</PostArticle>
);
}
유저 페이지 부분은 해결이 되었는데 Post가 표시되지 않는 부분은 아직도 해결이 안됩니다.
PostRecommends 컴포넌트에서 Post 컴포넌트에 데이터를 넘기지 않고 바로 표시하는 방법을 해봤는데 네트워크 탭 에서는 데이터가 잘 표시가 되지만 화면에는 표시되지 않습니다.
PostRecommends 코드 입니다.