728x90
반응형
1. 먼저 state를 사용하기 위해 제일 상단에 {useState} 있나 확인
import React, **{ useState }** from 'react';
2. UI가 보임/안보임 정보를 useState로 저장
let [modal, setModal] = useState(false);
3. 삼항연산자 if문을 이용해 state가 true 일때 UI를 보여줌
{
modal === true
? <Modal/>
: null
}
4. function App 아래에 component를 만들어준다.
function Modal(){
return(
<div className='modal'>
<div>글제목</div>
<p>발행일자</p>
<div>상세내용</div>
</div>
)
}
5. 버튼을 만들고 onClick를 만들어서 ()⇒{setModal(true)}로 해주면 클릭시에 UI가 나타남
- 여기서 true 가 아니고 !modal로 하면 현재의 modal 상태의 반대가 되기때문에
열렸다 닫혔다 가능
<button onClick={()=>{setModal(!modal)}}>상세페이지</button>
6. 결과
import logo from './logo.svg';
import React, { useState } from 'react';
import './App.css';
function App() {
let [글제목, 글제목변경] = useState(['떡볶이맛집','짜장면맛집','케이크맛집']);
let [좋아요, 좋아요변경] = useState([0,0,0]);
**let [modal, setModal] = useState(false);**
return(
<div>
{글제목.map((a,i)=>{return(
<div className='list'>
<div>{글제목[i]}<span onClick={()=>{let copy = [...좋아요];
copy[i]+=1;
좋아요변경(copy);
}}>👍</span> {좋아요[i]}
</div>
<p>3월 28일</p>
</div>
)})}
**<button onClick={()=>{setModal(!modal)}}>상세페이지</button>
{
modal === true
? <Modal/>
: null
}**
</div>
)
}
//자식컴포넌스
**function Modal(){
return(
<div className='modal'>
<div>글제목</div>
<p>발행일자</p>
<div>상세내용</div>
</div>
)
}**
export default App;
728x90
반응형
'Coding With Jina > React' 카테고리의 다른 글
[React] 리액트 시작하기 - 새로운 프로젝트 생성 방법 (0) | 2022.10.07 |
---|---|
[React] 리액트 클릭시 나오는 상세페이지UI 만들기 - component/props (0) | 2022.06.03 |
[React] 리액트 좋아요 개별 클릭수 카운트하기 - 배열 copy 이용 (0) | 2022.05.12 |
[React] 글 리스트 반복해서 만들기 - map( ) 함수/ 컴포넌트 반복 (0) | 2022.05.05 |
[React] 리액트 초기 세팅 - ③ create-react-app을 이용해서 개발환경 구축하기 (0) | 2021.01.12 |