• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 useHistory 적용 오류

useHistory 적용 오류

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #36176

    백지욱
    참가자

    import React from "react";
    import { Form, Button, Container } from "react-bootstrap";
    import { Link } from "react-router-dom";
    import axios from "axios";
    import { useDispatch } from "react-redux";
    import { useState } from "react";
    import { useHistory } from "react-router-dom";

    function Login() {
    const history = useHistory();
    const dispatch = useDispatch();

    const [로그인정보, 로그인정보변경] = useState([
    {
    username: "",
    password: "",
    },
    ]);

    const logininfoChange = (e) => {
    const { name, value } = e.target;
    로그인정보변경({
    ...로그인정보,
    [name]: value,
    });
    };

    // 로그인 axios 요청 보내기
    async function tryLogin(e) {
    e.preventDefault();

    const data = 로그인정보;
    const LOGIN_URL = "/auth/login";

    await axios
    .post(LOGIN_URL, data)
    .then((res) => {
    const token = "로그인됨!";
    dispatch({ type: "LOGIN" });
    window.localStorage.setItem("token", token);
    window.localStorage.setItem("username", data.username);

    history.push("home");
    dispatch({ type: "SIGNUP", payload: data });
    })
    .catch((err) => {
    console.log(err);
    alert("아이디나 비밀번호를 확인해라");
    });
    }

    return (
    <div className="jumbo2">
    <div className="Xbutton">
    <Link to="home">
    <Button variant="danger" type="submit">
    X
    </Button>
    </Link>
    </div>
    <h1>Login</h1>
    <Container>
    <Form>
    <Form.Group className="mb-3" controlId="formBasicID">
    <Form.Label>ID</Form.Label>
    <Form.Control
    type="text"
    placeholder="Enter ID"
    name="username"
    onChange={logininfoChange}
    />
    <Form.Text className="text-muted"></Form.Text>
    </Form.Group>

    <Form.Group className="mb-3" controlId="formBasicPassword">
    <Form.Label>Password</Form.Label>
    <Form.Control
    type="password"
    placeholder="Password"
    name="password"
    onChange={logininfoChange}
    />
    </Form.Group>

    <Button variant="primary" size="lg" onClick={tryLogin}>
    Login
    </Button>
    </Form>
    </Container>
    </div>
    );
    }

    export default Login;

    왜 오류가 발생하는지 잘모르겠어요ㅠㅠㅠ

    #36181

    백지욱
    참가자

    #36183

    백지욱
    참가자

    v6미만: useHistory
    v6이상: useNavigate

    1) npm i react-router-dom@5.0.0 (버전 다운그레이드)

    or

    2) import {
    useNavigate
    } from 'react-router-dom';
    const navigate = useNavigate();

    #36207

    codingapple
    키 마스터

    6버전에선 useNavigate 가져와서 쓰면 됩니다 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠