그런데 여기서 match 객체를 보면 params가 비어 있습니다. withRouter를 사용하면 현재 자신을 보여 주고 있는 라우트 컴포넌트(현재 Profiles)를 기준으로 match가 전달됩니다. Profiles를 위한 라우트를 설정할 때는 path="/profiles"라고만 입력했으므로 username 파라미터를 읽어 오지 못하는 상태입니다.
WithRouterSample 컴포넌트를 Profiles에서 지우고 Profile 컴포넌트에 넣으면 match 쪽에 URL 파라미터가 제대로 보일 것입니다.
Profile.js
import React from 'react'; import { withRouter } from 'react-router-dom'; import WithRouterSample from './WithRouterSample'; (...) const Profile = ({ match }) => { const { username } = match.params; const profile = data[username]; if (!profile) { return <div>존재하지 않는 사용자입니다.</div>; } return ( <div> (...) <WithRouterSample /> </div> ); }; export default withRouter(Profile);