반응형
- src > chapter_09 > Toolbar.jsx
import React from "react";
const styles = {
wrapper: {
padding: 16,
display: "flex",
flexDirection: "row",
border: "1px solid grey",
},
greeting: {
marginRight: 8,
},
}
function Toolbar(props) {
const { isLoggedIn, onClickLogin, onClickLogout } = props;
return (
<div style={styles.wrapper}>
{isLoggedIn && <span style={styles.greeting}>환영합니다!</span>}
{isLoggedIn ? (
<button onClick={onClickLogout}>로그아웃</button>
) : (
<button onClick={onClickLogin}>로그인</button>
)}
</div>
);
}
export default Toolbar;
- src > chapter_09 > LandingPage.jsx
import React, { useState } from "react";
import Toolbar from "./Toolbar";
function LandingPage(props) {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const onClickLogin = () => {
setIsLoggedIn(true);
};
const onClickLogout = () => {
setIsLoggedIn(false);
};
return (
<div>
<Toolbar
isLoggedIn = {isLoggedIn}
onClickLogin = {onClickLogin}
onClickLogout = {onClickLogout}
/>
<div style={{ padding: 16 }}>안녕하세요</div>
</div>
);
}
export default LandingPage;
- index.js 고친 후 npm start
로그인 버튼을 누르면 환영합니다! 글자와 함께 로그아웃 버튼이 나타난다.
반응형
'Front > React' 카테고리의 다른 글
[React] List 와 Key 를 사용하여 출석부 출력하기 (0) | 2023.04.20 |
---|---|
[React] 여러 개의 Component 렌더링 하기 (0) | 2023.04.20 |
[React] Conditional Rendering (0) | 2023.04.20 |
[React] 클릭 Event 처리하기 (0) | 2023.04.20 |
[React] Event 의 정의 및 Event 다루기 (0) | 2023.04.19 |