I'm trying to render the selected li (mapped in a child component) in an another child component. So you have the following structure (very simple):
Parent Component (Parent.JS)
- ➥ First Child called Title.JS (that should render the title selected from the Second Child, which will contain the menu)
- ➥ Second Child called Menu.JS (which contains the menu)
The exercise I'm trying to do and to understand here, is how to pass data(s) between children using props (in case the value goes through the parent).
Parent.JS
import React, { useState } from 'react'
import Child from './Child'
import Title from './Menu'
function Parent() {
const [word, setWord] = useState('Parent');
return (
<div>
<Title />
<Menu changeWord={word => setWord(word)}/>
</div>
)
}
export default Parent
Title.JS
import React from 'react'
function Title(props) {
return (
<div>
//Here I tell the code to print "Nothing selected"
//until I don't choose a link in the menu.
{props.title ? <h1>{props.title}</h1> : <h1>Nothing selected</h1>}
</div>
)
}
export default Title
Menu.JS
import React from 'react'
const data = [
{title: "Home"},
{title: "About"},
{title: "Contact"},
]
function Menu(props) {
return (
<div>
{data.map((item) => {
return <li onClick={() => props.changeWord(props.children)}>{item.title}</li>
})}
</div>
)
}
export default Menu
Of course, App,JS is simplified.
import Parent from './Parent'
function App() {
return (
<div>
<Parent />
</div>
);
}
export default App;
I'm so close..