2020/05/30 - [react] - 리액트 _3_이미지 클릭시 상세페이지로 이동하기
리액트 _3_이미지 클릭시 상세페이지로 이동하기
2020/05/30 - [react] - 리액트 _2_비동기방식으로 페이지 넘기기 useEffect(()=>{},[]) => 비동기화 ===> redux-thunk redux-saga - useCallback: function을 기억.." data-og-host="wastetime.tistory.com"..
wastetime.tistory.com
1. recipe_detail을 위한 서버를 하나 만든다.
app.get('/recipe_detail',(request,response)=>{
var no= request.query.no; //문자 1이 들어옴. 숫자아님 그래서 쓸 때 숫자로 변형시켜줘야 함.
//몽고db에 연결
var url="mongodb://211.238.142.181:27017";
Client.connect(url,(err,client)=>{
var db = client.db('mydb');
db.collection('recipe_detail').find({no:Number(no)}).toArray((err,docs)=>{
response.json(docs[0]);
client.close();
})
})
})
2. recipe_detail.js에서 출력한다.
**var a ={} : object
**var a =[] : array
const [detail,setDetail] =useState({});
==> detail에다가 값을 담아놓는다는 것.
useEffect(()=>{
axios.get('http://localhost:3355/recipe_detail',{
params:{
no:match.params.no
}
}).then((result)=>{
setDetail(result.data)
})
},[])
==> 값을 받아서 출력해주는 useEffect를 작성한다.
return 부분에 출력할 모양을 잡아준다.
return(
<div className={"row"} style={{"margin":"0px auto", "width":"900px"}}>
<table className={"table"}>
<tr>
<td colSpan={"3"}>
<img src={detail.poster} width={"700"} height={"350"}/>
</td>
</tr>
<tr>
<td colSpan={"3"}>
<h3>{detail.title}</h3>
</td>
</tr>
<tr>
<td colSpan={"3"}>
<h3>{detail.content}</h3>
</td>
</tr>
</table>
</div>
결과) 상세페이지가 보여진다.
반응형
'react' 카테고리의 다른 글
리액트_5_레시피 상세보기 페이지 만들기_2 (0) | 2020.05.30 |
---|---|
mongoDB 설치하기, 연결하기, 데이터 저장하기 (0) | 2020.05.30 |
리액트 _3_이미지 클릭시 상세페이지로 이동하기 (0) | 2020.05.30 |
리액트 _2_비동기방식으로 페이지 넘기기 (0) | 2020.05.30 |
리액트 _1_만개의레시피 리액트버전 (0) | 2020.05.30 |