Skip to content

#32 [10장_1] 다음 컴포넌트에 타입스크립트와 Context API를 적용해주세요~! #50

@drizzle96

Description

@drizzle96

❓문제

다음 컴포넌트에 타입스크립트와 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 App
const Navbar = ({ user, logout }) => {
  return (
    <nav>
      {user ? (
        <>
          <span>Welcome, {user.name}</span>
          <button onClick={logout}>Logout</button>
        </>
      ) : (
        <span>Please log in</span>
      )}
    </nav>
  )
}

export default Navbar
const MainContent = ({ user, login }) => {
  return (
    <div>
      {user ? (
        <h1>Welcome back, {user.name}!</h1>
      ) : (
        <Login login={login} />
      )}
    </div>
  )
}

export default MainContent
const 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

🎯답변

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions