인프런 커뮤니티 질문&답변

장산님의 프로필 이미지
장산

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글 삭제 saga 작성하기

postData.split is not a function 에러

작성

·

428

0

[제로초 강좌 질문 필독 사항입니다]
질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.
도움이 되는 질문을 하는 방법을 알려드립니다.

https://www.youtube.com/watch?v=PUKOWrOuC0c

0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.
2.스크린샷 2023-04-06 오후 10.09.16.png

스크린샷 2023-04-06 오후 10.09.37.png
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,
};
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

지금 더미데이터라서 그런 것 같네요. 근데 이걸 바꾼다고 저 문제가 해결되는건 저도 이해가 잘 안 됩니다.

장산님의 프로필 이미지
장산

작성한 질문수

질문하기