Inflearn brand logo image

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

mnmhb64님의 프로필 이미지
mnmhb64

작성한 질문수

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

TypeError: postData.split is not a function 에러 질문 있습니다!

해결된 질문

작성

·

428

0

안녕하세요! 항상 좋은 강의 잘 듣고 있습니다. 감사합니다.

현재 챕터4 끝까지 수강하고 다시 복습하고 있었는데, 자꾸 위와 같은 에러가 발생합니다.

이미 저랑 같은 질문을 했던 분들이 많이 계셔서
밑에 달린 제로초님 답변 따라 PostCard부터 쭉 확인해봤는데도 어떤 문제인지 찾지 못했습니다..

리덕스데브툴로 확인해보니,
ADD_POST_REQUEST
ADD_POST_SUCCESS
ADD_POST_TO_ME 까지 실행됐다가 에러가 발생합니다.

// PostCard.js
<Card.Meta
          avatar={<Avatar>{post.User.nickname[0]}</Avatar>}
          title={post.User.nickname}
          description={<PostCardContent postData={post.content} />}
        />
// reducers/post.js
const dummyPost = (data=> ({
  id: data.id,
  content: data.content,
  User: {
    id: 1,
    nickname: '제로초',
  },
  Images: [],
  Comments: [],
});
// reducers/user.js
    case ADD_POST_TO_ME:
      draft.me.Posts.unshift({ id: action.data });
      break;
// sagas/post.js
function* addPost(action) {
  try {
    // const result = yield call(addPostAPI, action.data);
    yield delay(1000);
    const id = shortId.generate();
    yield put({
      type: ADD_POST_SUCCESS,
      data: {
        id,
        content: action.data,
      },
    });
    yield put({
      type: ADD_POST_TO_ME,
      data: id,
   });

  const onSubmitForm = useCallback(() => {
    dispatch({
      type: ADD_POST_REQUEST,
      data: {
        text,
      },
    });
 }, []);

PostForm의 data: { text } 부분을 그냥 data: text, 로 입력해봤는데
그때부터는 위와 같은 TypeError는 발생하지 않았지만,
글이 빈칸으로 포스팅되고 리덕스로 확인해보니 content 가 빈칸으로만 출력되었습니다..

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

data: text가 맞고 useCallback의  []를 [text]로 쓰시면 됩니다.

0

mnmhb64님의 프로필 이미지
mnmhb64
질문자

감사합니다!

mnmhb64님의 프로필 이미지
mnmhb64

작성한 질문수

질문하기