⚛️ React/문제풀기 (코딩애플: React)
React : 탭 만들기 (if else, array로 만들기) + props 귀찮을 때 팁
Zoeeey
2023. 6. 12. 22:09
풀이
function Detail(props){
let [tab, setTab] = useState(0);
return (
<div className="container">
<Nav variant="tabs" defaultActiveKey="link0">
<Nav.Item>
<Nav.Link eventKey="link0" onClick={()=> {setTab(0)}}>버튼0</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="link1" onClick={()=> {setTab(1)}}>버튼1</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="link2" onClick={()=> {setTab(2)}}>버튼2</Nav.Link>
</Nav.Item>
</Nav>
<TabContent tab={tab}/>
</div>
)
}
function TabContent(props){
if (props.tab === 0) {
return <div>내용0</div>
} else if (props.tab === 1) {
return <div>내용1</div>
} else if (props.tab === 2) {
return <div>내용2</div>
}
}
더 센스있게 풀기
function TabContent({tab}){
return [<div>내용0</div>, <div>내용1</div>, <div>내용2</div>][tab]
}
알게 된 점
JSX는 JavaScript의 확장 문법이지만, switch 문은 JavaScript의 제어 흐름 구조다. 따라서 JSX 내에서 switch 문을 사용하면 구문 오류가 발생한다.
props.컴포넌트 다 쓰기 귀찮을 때 팁
function TabContent({tab}){
if (tab === 0) {
return <div>내용0</div>
} else if (tab === 1) {
return <div>내용1</div>
} else if (tab === 2) {
return <div>내용2</div>
}
}
props 이름을 중괄호로 감싸 매개변수로 넣으면 props를 생략해도 된다.
props에서 여러개의 변수를 추출하고 싶으면 아래처럼 한다.
function TabContent({ tab, title }) {
// tab와 title 변수를 사용하여 작업 수행
// ...
}
출처 : 코딩애플 https://codingapple.com/