props 안에는 history객체가 있고
그 안에는 goBack() 등이 있다.
따라서 props.history.goBack()을 통해 뒤로가기를 구현할 수 있다.
자세한것은 콘솔창에 props.history를 찍어보면 바로 알 수 있을 것이다.
props로 받지 않고 아래의 예시와 같이 history객체를 바로 받아올 수도 있다.
import React from "react";
function Comp({ history }) {
return (
<div>
<button onClick={() => history.push('/menu')}>Menu으로 이동</button>
</div>
);
}
export default Comp;
|
react-router-dom의 페이지 이동시 알림창을 띄우는 block을 이용해 보자
import React, { useEffect } from 'react'
function HistorySample({ history }) {
//뒤로 가기
const goBackHandler = () => {
history.goBack()
}
//'/'로 이동
const goHomeHandler = () => {
history.push('/')
}
useEffect(() => {
//이것을 설정하고 나면 페이지에 변화가 생기려고 할 때마다 정말 나갈 것인지를 질문함
const unblock = history.block('Are you sure?')
return () => {
//컴포넌트가 언마운트되면 질문을 멈춤
if (unblock) {
unblock()
}
}
}, [history])
return (
<div>
<button onClick={goBackHandler}>뒤로</button>
<button onClick={goHomeHandler}>홈으로</button>
</div>
)
}
export default HistorySample
|
'basic > React.js' 카테고리의 다른 글
[React.js] react-router-dom (0) | 2021.02.20 |
---|---|
[React.js] Enter 이벤트 (0) | 2021.02.19 |
[React.js] http-proxy-middleware Cors이슈 (0) | 2021.02.16 |
[React.js] react-icons (0) | 2021.02.14 |
[React.js] Ref (0) | 2021.02.09 |