-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
❓문제
다음 컴포넌트에 타입스크립트와 Context API를 적용해주세요~!
import { useState } from 'react'
const App = () => {
const [user, setUser] = useState(null)
const login = (username) => {
setUser({ name: username })
}
const logout = () => {
setUser(null)
}
return (
<div>
<Navbar user={user} logout={logout} />
<MainContent user={user} login={login} />
</div>
)
}
export default Appconst Navbar = ({ user, logout }) => {
return (
<nav>
{user ? (
<>
<span>Welcome, {user.name}</span>
<button onClick={logout}>Logout</button>
</>
) : (
<span>Please log in</span>
)}
</nav>
)
}
export default Navbarconst MainContent = ({ user, login }) => {
return (
<div>
{user ? (
<h1>Welcome back, {user.name}!</h1>
) : (
<Login login={login} />
)}
</div>
)
}
export default MainContentconst Login = ({ login }) => {
const [username, setUsername] = useState('')
const handleLogin = () => {
login(username)
}
return (
<div>
<input
type="text"
placeholder="Username"
value={username}
onChange={(e) => setUsername(e.target.value)}
/>
<button onClick={handleLogin}>Login</button>
</div>
)
}
export default Login🎯답변
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels