-
Detail Container 1React 2019. 11. 14. 22:22
import { BrowserRouter as Router, Route, Redirect, Switch } from "react-router-dom";)
- Header.js
export default withRouter(({ location: { pathname } }) => ( <Header> <List> <Item current={pathname === "/"}> <SLink to="/">Movies</SLink> </Item> <Item current={pathname === "/tv"}> <SLink to="/tv">TV</SLink> </Item> <Item current={pathname === "/search"}> <SLink to="/search">Search</SLink> </Item> </List> </Header> ));
- {Detail}는 Header.js 파일처럼 링크설정을 해줄 필요가없는데,
- 리액트라우터가(react-router-dom) 디폴트로 모든 정보를 Route들에게 주므로, 따로 꾸며줄필요가 없다고함 (props를 디폴트로 전달해줌)
해야 할 작업
- url경로가 /movie에 있는지, /show에 있는지 알아야함
- DetailContainer.js
import React from "react"; import DetailPresenter from "./DetailPresenter"; export default class extends React.Component { state = { result: null, error: null, loading: true }; async componentDidMount() { const { match: { params: { id } }, history: { push } } = this.props; const parsedId = parseInt(id); if (isNaN(parsedId)) { return push("/");// id가 숫자가아닐시 홈으로 되돌아감, 라우터에 새 URL을 푸시 // 리턴할때 함수는 종료됨 // 리턴 없이 해주면, 사용자를 다른 페이지로 보내고 다음 실행문을 실행함 } } render() { // console.log(this.props); => match.params 정보를 얻을수잇다. const { result, error, loading } = this.state; return <DetailPresenter result={result} error={error} loading={loading} />; } }
2. url경로에 어떤 숫자가 있는지..? (/movie/1 <= & /show/1 <= 여기에 어떤 숫자가 있는지 알아야함)
=> To be continue
'React' 카테고리의 다른 글
let으로 할당 제거(Destructuring assignment) (0) 2019.11.19 Detail Container 2 (0) 2019.11.18 Home ,TV, Search, Detail Container (0) 2019.11.14 #5 Container Presenter Pattern (0) 2019.11.13 api 파트 2 (0) 2019.11.11