본문 바로가기
Javascript&Typescript/React

[React] 버튼 클릭 이벤트 새로운 페이지로 이동하기 (button click to new page)

by clolee 2022. 9. 6.

새로운 페이지 만들기

 

src/pages/PurchasePage.js

import React from "react";

const PurchasePage = () => {
  return <div>PurchasePage</div>;
};

export default PurchasePage;

 

 

useNavigate() 사용하기

 

참고 :

2022.07.20 - [javascript/React] - [React] React app - 시작 로고 페이지 만들기 (useNavigate, setTimeout())

 

navigateToPurchase 에서 navigate 함수를 호출해 주소를 전달한다.

navigate 함수에 인자로 주소를 넣어준다.

 

src/pages/ListProductsSalePage.js

  const navigate = useNavigate();

  const navigateToPurchase = () => {
    navigate("/purchase");
  };

 

 

onClick event에 함수 전달

 

버튼 onClick event에 위에서 선언한 arrow function navigateToPurchase 를 전달

 

src/pages/ListProductsSalePage.js 

          <Button size="large" onClick={navigateToPurchase}>
            구매하기
          </Button>

 

src/pages/ListProductsSalePage.js 전체코드

import * as React from "react";
import ProgressBar from "../components/ProgressBar";
import {
  Box,
  Card,
  CardActions,
  CardContent,
  Divider,
  Button,
  Typography,
} from "@mui/material";
import { useNavigate } from "react-router-dom";

const ListProductsSalePage = () => {
  const navigate = useNavigate();

  const navigateToPurchase = () => {
    navigate("/purchase");
  };

  return (
    <div>
      <br />
      <Card sx={{ minWidth: 275 }}>
        <CardContent>
          <Typography variant="h5" component="div">
            benevolent
          </Typography>
          <Typography variant="body2">
            well meaning and kindly.
            <br />
            {'"a benevolent smile"'}
          </Typography>
          <ProgressBar />
        </CardContent>
        <Divider />
        <CardActions>
          <Button size="large" onClick={navigateToPurchase}>
            구매하기
          </Button>
        </CardActions>
      </Card>
    </div>
  );
};

export default ListProductsSalePage;

 

import와 Route 추가

 

src/App.js

import PurchasePage from "./pages/PurchasePage";
	<Routes>          
          <Route path="/purchase" element={<PurchasePage />}></Route>
        </Routes>

 

 

실행 결과

 

구매하기 버튼 클릭 시 PurchasePage로 이동

 

 

다른 Hook 살펴보기

2022.12.02 - [javascript/React] - 페이지 이동 Hook useNavigate, useParams, useSearchParams

 

 

 

참고 :

https://reactrouter.com/en/main/hooks/use-navigate

https://ko.reactjs.org/docs/handling-events.html

https://bobbyhadz.com/blog/react-onclick-redirect

 

 

 

댓글