Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- XEIcon
- 웹아이콘
- git lab clone
- googleicon
- package.json
- MediaQuery
- react npm install
- fontawesome
- vscode git clone
- 의존성문제
- npm install
- node 오류
- minwidth
- npm install 문제
- owlcarousel
- 아이콘사용법
- maxwidth
- 그누보드반응형
- 동적객체
- window 정책변경
- 글자들여쓰기
- npm start
- node설치
- 플러그인
- Git clone
- 정적객체
- 이미지반응형
- slickslider
- 단어단위로떨어지기
- legacy-peer
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
[문법] .map(), 컴포넌트, props 사용하여 각 동작 제어하기 본문
728x90
2025.01.15 - [리액트] - [문법] 파라미터(props) 사용 (부모 -> 자식) 2
✔ 위의 글 코드 발전시키기
- 세개의 코드를 만들고 각각의 button으로 모달창 제어하기 + 모달창 안에 있는 글 수정 버튼을 누르면 해당 구이름 변경
코드 👇
import { useState } from 'react'
import './App.css'
function App() {
let [구이름, 구이름변경] = useState(['강남구', '송파구', '서초구']);
let [변경내용] = useState(['하남시', '여주', '파주']);
let [modal, setModal] = useState([false, false, false]);
return (
<>
<div>
{구이름.map((a, index) =>
<Div key={index} index={index} 구이름={구이름} setModal={setModal} modal={modal}/>
)}
{modal.map((isOpen, index) => isOpen ? (
<Modal
key={index}
className={'bg_yellow'}
index={index}
구이름={구이름}
구이름변경={구이름변경}
변경내용={변경내용}
/>
) : null)}
</div>
</>
)
}
function Div({ index, 구이름, setModal }){
return(
<>
<div style={{ marginTop: '10px' }}>
<span>{구이름[index]}</span>
<button onClick={() => {
setModal((prev) => {
const updatedModal = [...prev];
updatedModal[index] = !prev[index]; // 해당 인덱스의 모달 상태를 반전
return updatedModal;
});
}}>모달창</button>
</div>
</>
)
}
function Modal({ className, index, 구이름, 구이름변경, 변경내용 }){
const handleUpdate = () => {
구이름변경((prev) => {
const updatedNames = [...prev];
updatedNames[index] = 변경내용[index]; // 구이름[index]를 변경내용[index]로 업데이트
return updatedNames;
});
};
return(
<>
<div className={`modal ${className}`}>
<h2>{구이름[index]}</h2>
<p>날짜</p>
<p>상세내용</p>
<button onClick={handleUpdate}>글 수정</button>
</div>
</>
)
}
export default App;
결과 👇

1. span에 있는 강남구가 모달 h2에 똑같이 뜨고

2. 글수정을 누르면 변경내용의 값으로 바뀐다.
힘들어따....

728x90
'개발 > 🟦 React' 카테고리의 다른 글
| 🟦 [React] input, useState는 비동기 처리, useEffect는 동기적 처리 (0) | 2025.01.24 |
|---|---|
| [문법] useEffect (2) | 2025.01.20 |
| [문법] 파라미터(props) 사용 (부모 -> 자식) 2 (1) | 2025.01.16 |
| [문법] 파라미터(props) 사용 (부모 -> 자식) 1 (1) | 2025.01.16 |
| [문법] .map() 에서 동작 따로 관리하기 (2) | 2025.01.15 |
Comments
