Skip to content

Instantly share code, notes, and snippets.

@bicky-tmg
Last active July 25, 2022 11:07
Show Gist options
  • Save bicky-tmg/82e55b3f2a8d9dba0f132c666b7b9121 to your computer and use it in GitHub Desktop.
Save bicky-tmg/82e55b3f2a8d9dba0f132c666b7b9121 to your computer and use it in GitHub Desktop.
A simple app passing data down through props
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