Last active
July 25, 2022 11:07
-
-
Save bicky-tmg/82e55b3f2a8d9dba0f132c666b7b9121 to your computer and use it in GitHub Desktop.
A simple app passing data down through props
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, { useState } from "react"; | |
function App() { | |
const [user, setUser] = useState('John'); | |
return ( | |
<div> | |
<NavBar setUser={setUser} /> | |
<MainPage user={user} /> | |
</div> | |
) | |
} | |
export default App; | |
// Navbar component | |
function NavBar({ setUser }) { | |
return ( | |
<nav | |
style={{ | |
display: "flex", | |
alignItems: "center", | |
padding: "0.5rem 1rem", | |
backgroundColor: "rgb(248 250 252)", | |
}} | |
> | |
<h3 style={{ marginRight: "auto" }}>Navbar</h3> | |
<button | |
style={{ | |
borderRadius: "1rem", | |
padding: "0.5rem", | |
backgroundColor: "rgb(203 213 225)", | |
}} | |
onClick={() => setUser('Jane')} | |
> | |
Change to Jane | |
</button> | |
</nav> | |
) | |
} | |
// MainPage component | |
function MainPage({ user }) { | |
return ( | |
<div style={{ marginTop: "2rem", textAlign: "center"}}> | |
<h2>Main Page</h2> | |
<WelcomePage user={user} /> | |
</div> | |
) | |
} | |
// WelcomePage component | |
function WelcomePage = ({ user }) { | |
return ( | |
<div> | |
<WelcomeMessage user={user} /> | |
{/** Some other welcome page code */} | |
</div> | |
); | |
} | |
// WelcomeMessage component | |
const WelcomeMessage = ({ user }) => { | |
return ( | |
<h1>Hey, {user}!</h1> | |
); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment