작성
·
428
0
[제로초 강좌 질문 필독 사항입니다]
질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.
도움이 되는 질문을 하는 방법을 알려드립니다.
https://www.youtube.com/watch?v=PUKOWrOuC0c
0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.
2.
3.
case ADD_POST_TO_ME:
return {
...state,
me: {
...state.me,
Posts: [{ id: action.data }, ...state.me.Posts],
},
};
const PostCardContent = ({ postData }) => (
//#해쉬태그
<div>
{postData?.split(/(#[^\s#]+)/g).map((v, i) => {
if (v.match(/(#[^\s#]+)/)) {
return (
<Link href={`/hashtag/${v.slice(1)}`} key={i}>
<a>{v}</a>
</Link>
);
}
return v;
})}
</div>
);
function* addPost(action) {
try {
//const result = yield fork(addPostAPI, action.data);
yield delay(1000);
const id = shortId.generate();
yield put({
//put : dispatch
type: ADD_POST_SUCCESS,
data: {
id,
content: action.data,
},
});
yield put({
type: ADD_POST_TO_ME,
data: id,
});
} catch (err) {
yield put({
type: ADD_POST_FAILURE,
data: err.response.data,
});
}
}
로그인하고 게시물을 아무거나 입력하고 짹짹을 누르면 에러가뜹니다
postData.split이 읽히지가 않아서 ?까지 넣어봤는데 같은오류가 나옵니다.
<PostCardContent postData={post.content} />
여기서 post.content는 콘솔로 찍어본 결과 "첫 번째 게시글 #해시태그 #jangsan"만 뜹니다
어디가 문제인지 잘모르겠습니다
답변 1
0
Warning: Failed prop type: Invalid prop post.id
of type number
supplied to PostCard
, expected string
.
이런 에러를 보고 post.id 타입을 number에서 string으로 바꿔주니까 게시글이 올라갔는데 이렇게 해결해도 나중에 문제없을까요....?
PostCard.propTypes = {
post: PropTypes.shape({
id: PropTypes.string,
user: PropTypes.object,
content: PropTypes.string,
createdAt: PropTypes.object,
Comment: PropTypes.arrayOf(PropTypes.object),
Images: PropTypes.arrayOf(PropTypes.object),
}).isRequired,
};
지금 더미데이터라서 그런 것 같네요. 근데 이걸 바꾼다고 저 문제가 해결되는건 저도 이해가 잘 안 됩니다.