BrowserRouter 는 history 객체를 자동으로 생성하고,
컴포넌트 단위로 history 객체를 컨트롤하기 때문에 커스텀 작업이 어렵다.
컴포넌트 바깥에서 history 객체를 컨트롤하기 위해서는 BrowserRouter 대신 Router를 사용하고,
BrowserHistory 를 별도 생성하여 관리해야 한다.
history 객체는 history 모듈에서 createBrowserHistory로 받아 올 수 있다.
import { createBrowserHistory } from 'history';
const history = createBrowserHistory(); // 히스토리 객체 반환
const store = configureStore(history);
이렇게 작성해주는 방법과
따로 utils 폴더에 history.js 파일에 분리하여 작성하여 history 파일을 import 해오고 Router에 history를 props로 전달한다.
그러면 각 컴포넌트는 history, location, math 객체를 props로부터 제공받아 사용가능 하다.
import { createBrowserHistory } from "history";
export default createBrowserHistory();
이 글에서 작성한 코드는 내가 참고하고 싶은 부분만 작성한거라
자세한 코드와 설명은 참고사이트를 참고하면 된다.
참고사이트
https://velog.io/@yoonvelog/Redux-thunk-%EC%97%90%EC%84%9C-history
react-router 및 history
redux-thunk 세팅하면서 createBrowserHistory 를 사용했었는데,기존 App.js 파일에서 여기에서 상단 import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; 이 부분
velog.io
728x90
'React' 카테고리의 다른 글
[React]라이프사이클 메서드의 이해 (1) | 2022.11.21 |
---|---|
[React] async await (0) | 2022.11.15 |
dangerouslySetInnerHTML (0) | 2022.10.06 |
React 화살표 함수 (2) | 2022.09.21 |
React.lazy & Suspense (0) | 2022.09.19 |