강의

멘토링

커뮤니티

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

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

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

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

gửi tin nhắn

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

Viết

·

926

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.ioreactbabeltypescript클론코딩

Câu trả lời 3

0

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

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

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

0

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

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

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

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

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

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

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

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

0

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

https://sleact.nodebird.com

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

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

아뇨 한번만 갑니다.

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

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

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

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

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

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

Đặt câu hỏi