inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[실시간 채팅 with React]

채팅 보내기

한글입력시 채팅이 두개씩 가는 오류

962

proyong

작성한 질문수 13

0

DM을 보내면 이모티콘과 영문은 한번씩 가지만

한글로 보낼 경우 2개씩 중복해서 보내집니다

무엇이 잘못된 걸까요?

import ChatBox from '@components/ChatBox';
import ChatList from '@components/ChatList';
import { Container, Header } from '@pages/Channel/styles';
import { IDM } from '@typings/db';
import fetcher from '@utils/fetcher';
import React, { useCallback } from 'react';
import gravatar from 'gravatar';
import { useParams } from 'react-router';
import useSWR from 'swr';
import useInput from '@hooks/useInput';
import axios from 'axios';

const DirectMessage = () => {
  const { workspace, id } = useParams<{ workspace: string; id: string }>();
  const { data: userData } = useSWR(`/api/workspaces/${workspace}/users/${id}`, fetcher);
  const { data: myData } = useSWR('/api/users', fetcher);
  const [chat, onChangeChat, setChat] = useInput('');
  const {
    data: chatData,
    mutate: mutateChat,
    revalidate,
  } = useSWR<IDM[]>(`/api/workspaces/${workspace}/dms/${id}/chats?perPage=20&page=1`, fetcher);

  const onSubmitForm = useCallback(
    (e) => {
      e.preventDefault();
      console.log(chat);
      if (chat?.trim()) {
        axios
          .post(`/api/workspaces/${workspace}/dms/${id}/chats`, {
            content: chat,
          })
          .then(() => {
            revalidate();
            setChat('');
          })
          .catch(console.error);
      }
    },
    [chat, chatData],
  );

  if (!userData || !myData) {
    return null;
  }
  return (
    <Container>
      <Header>
        <img src={gravatar.url(userData.email, { s: '24px', d: 'retro' })} alt={userData.nickname} />
      </Header>
      <ChatList chatData={chatData} />
      <ChatBox chat={chat} onChangeChat={onChangeChat} onSubmitForm={onSubmitForm} />
    </Container>
  );
};

export default DirectMessage;

웹팩 Socket.io react babel typescript 클론코딩

답변 3

0

군고구마

이거 해결하신 분 있으신가요??

0

제로초(조현영)

마찬가지로 sleact.nodebird.com에서는 되는지 확인해주세요. 된다면 제 깃헙 코드를 쓰셔야 할 것 같습니다.

0

kycho

저도 한글만 쳤을때 2번씩 전송되던데.. 혹시 해당문제 해결하셨나요 ??

0

제로초(조현영)

실제 배포된 사이트에서도 두번씩 쳐지시나요?

0

kycho

배포하신 사이트는 아주 잘됩니다 ㅎㅎ 

그 배포하실때 사용하신 코드가 https://github.com/ZeroCho/sleact/tree/master/front
이건가요 ??? 

0

제로초(조현영)

네 그 코드입니다. 한 번 클론받아서 해보시겠어요?

0

kycho

클론받아서 실행해본것도 아주 잘되요 ㅋㅋ  한번 비교해보면서 오타난곳없나 찾아볼게요!! 감사합니다 

0

제로초(조현영)

https://sleact.nodebird.com

여기에서도 똑같이 두 번씩 쳐지나요?

0

proyong

아뇨 한번만 갑니다.

네트워크에서 chats이 한번만 가야되는데

저는 한글로 쳤을때 2번씩 가게되네요 ㅜㅜ

0

제로초(조현영)

이게 브라우저 한글 버그인지 코드 오타인지 구별이 잘 안 가네요. ㅠ 그런데 제 배포본에서는 한번만 쳐지신다고 하신 것을 보면 코드 오타 가능성도 있어 보입니다.

기본 셋팅과 관련하여

0

92

1

초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법

0

96

2

focus 시에만 화면 업데이트 되는 이유 + 해결방법

0

150

2

useEffect 개수 관리

0

110

2

라이브러리 서치 방법

0

104

2

함수 정의 패턴

0

77

1

npm run dev 에러

0

152

3

npx webpack 후 에러

0

178

2

'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)

0

144

2

사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')

1

178

2

초기세팅중 packge.json 에러떠요

0

156

2

CORS - Access-Control-Allow-Origin 누락 문제

0

431

3

로그인 페이지 무한 새로고침 현상

0

598

2

Module not found: Error: Can't resolve './App' 에러

0

959

1

배포 방법

0

297

2

npm run dev 시 빌드가 매우 느려졌습니다

0

990

2

alias 경로 설정 오류

0

451

2

fetcher 함수의 data 값이 두번 찍히는 이유

0

277

1

제네릭 질문

0

218

2

ts-node 대신 tsx 사용여부

0

373

1

배포 관련 질문

0

247

1

[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.

0

385

2

[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.

0

336

1

users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.

0

247

2