강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của goidtv
goidtv

câu hỏi đã được viết

Mã hóa Slack Clone [Trò chuyện trực tiếp với React]

Kết nối sự kiện socket.io

GET .../members error

Viết

·

263

0

이전에 비슷한 문제를 겪은 글이 있었는데 해결되지 않아서 글을 작성하게 되었습니다.

 

InviteChannelModal 컴포넌트에서 보내는 GET 요청

  const { revalidaterevalidateMembers } = useSWR(
    userData ? `/api/workspaces/${workspace}/channels/${channel}/members` : null,
    fetcher,
 );

위 코드의 실행되는 결과로 다음과 같은 에러가 발생합니다.

 

const { workspacechannel } = useParams();

InviteChannelModal 컴포넌트에서 콘솔에 workspace와 channel을 찍어보니 channel이 undefined 값으로 나오는데 useParams를 사용하면 현재 URL에서 라우터에서 지정한 콜론 뒤의 키에 해당하는 값을 반환하는 것으로 알고 있습니다. 

로그인 후 "http://localhost:3090/workspace/sleact/channel/일반" 주소로 이동하기에 channel 값이 일반으로 출력되기를 예상합니다만..  Workspace layouts 에서 라우터 설정을 했음에도 매칭되는 channel 값을 받아오지 못하기에 원인을 알 수 없어 여쭤봅니다.

<Switch>
  <Route path="/workspace/:workspace/channel/:channel" component={Channel} />
  <Route path="/workspace/:workspace/dm/:id" component={DirectMessage} />
</Switch>

 

클론코딩babeltypescriptreact웹팩Socket.io

Câu trả lời 2

4

같은문제로 저도 고생했는데 나중에 강의자 분께서 올려주신 원본 소스를보니 layouts/workspace 안에 있던 <InviteChannelModal> 가 없습니다. 지우시고 나중에 pages/Channel 쪽에 넣으시면 되겠습니다.

혹시 그 코드가 어디있을까요..? 원본소스요.. 제가 제로초님 깃허브 소스를 보면 layouts/workspace 안에 InviteChannelModal 가 전부 들어있어서요..ㅠㅠ

0

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

const a = useParams();

console.log(a)

해서 a가 뭐가 찍히는지 봐보세요. 그리고 브라우저 주소창도 보여주세요.

seong2님의 프로필 이미지
seong2
Người đặt câu hỏi

 InviteChannelModal에서 말씀하신대로 콘솔에 찍었더니 workspace만 담겨있습니다.

Hình ảnh hồ sơ của goidtv
goidtv

câu hỏi đã được viết

Đặt câu hỏi