inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

swr 사용하기(쿠키 공유하기)

로그인후 성공후에 swr로 요청한 user가 호출되지 않습니다

599

재미있는 여우

작성한 질문수 1

0

안녕하세요!
swr 사용하기(쿠키공유하기) 강좌를 보던중에
코드를 제로초님과 분명 똑같이 작성했는데
저는 로그인 성공후에 swr에서 user를 확인하는 get 방식 api가 호출되지 않습니다 ㅠㅠ
로그인 화면 접속시에는 강좌와 같이 호출이 되는데말이죠..
몇일 고민하다 글올립니다ㅠㅠ 무엇이 문제인가요

네트워크 요청
 
Login/index.tsx
import useInput from "@hooks/useInput";
import { Success, Form, Error, Label, Input, LinkContainer, Button, Header } from "@pages/SignUp/styles";
import fetcher from "@utils/fetcher";
import axios from "axios";
import React, { useCallback, useState } from "react";
import { Link } from "react-router-dom";
import useSWR from "swr";

const LogIn = () => {
  const { data, error } = useSWR("http://localhost:3095/api/users", fetcher);
  const [logInError, setLogInError] = useState(false);
  const [email, onChangeEmail] = useInput("");
  const [password, onChangePassword] = useInput("");
  const onSubmit = useCallback(
    (e) => {
      e.preventDefault();
      setLogInError(false);
      axios
        .post("http://localhost:3095/api/users/login", { email, password })
        .then(() => {})
        .catch((error) => {
          setLogInError(error.response?.data?.statusCode === 401);
        });
    },
    [email, password],
  );

  return (
    <div id="container">
      <Header>Sleact</Header>
      <Form onSubmit={onSubmit}>
        <Label id="email-label">
          <span>이메일 주소</span>
          <div>
            <Input type="email" id="email" name="email" value={email} onChange={onChangeEmail} />
          </div>
        </Label>
        <Label id="password-label">
          <span>비밀번호</span>
          <div>
            <Input type="password" id="password" name="password" value={password} onChange={onChangePassword} />
          </div>
          {logInError && <Error>이메일과 비밀번호 조합이 일치하지 않습니다.</Error>}
        </Label>
        <Button type="submit">로그인</Button>
      </Form>
      <LinkContainer>
        아직 회원이 아니신가요?&nbsp;
        <Link to="/signup">회원가입 하러가기</Link>
      </LinkContainer>
    </div>
  );
};

export default LogIn;

 

fetcher.ts

import axios from "axios";

const fetcher = (url: string) => axios.get(url).then((response) => response.data);

export default fetcher;

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

답변 2

0

시크한 표범

위에 적어주신 부분 mutate()는 왜해주는 것인지 알 수 있을까용? 

0

제로초(조현영)

로그인 후에 사용자데이터를 갱신요청하는 겁니다.

0

제로초(조현영)

login 부분에서 axios then 부분이 비어있어서 그런 건데요. 코드 작성이 안 되었습니다.

0

재미있는 여우

답변감사합니다

하지만 아래 캡쳐사진 보면 제로초님도 then부분이 비어있는 상태인데 결과화면에서 호출이 됐었습니다
제가 swr설치한 버전이 1.1.2인데 업그레이드 되면서 뭔가바뀐걸까요?

0

제로초(조현영)

const { data, error, mutate } = useSWR("http://localhost:3095/api/users", fetcher);

then(() => mutate()) 이렇게 해보세요.

기본 셋팅과 관련하여

0

91

1

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

0

96

2

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

0

148

2

useEffect 개수 관리

0

109

2

라이브러리 서치 방법

0

103

2

함수 정의 패턴

0

77

1

npm run dev 에러

0

152

3

npx webpack 후 에러

0

178

2

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

0

142

2

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

1

177

2

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

0

154

2

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

0

430

3

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

0

598

2

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

0

952

1

배포 방법

0

296

2

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

0

988

2

alias 경로 설정 오류

0

448

2

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

0

275

1

제네릭 질문

0

217

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