Доброго времени! Делаю тестовое задание на сайт, и нужно главное меню выводить не только в навигации, но и при нажатии на *гамбургер* чтоб тоже меню открывалось в левой части страницы но без некоторых div.
Допустим я очень ленивый программист, и хочу использовать JSX компонент в котором есть данный код
import React from 'react';
import HeaderLogo, {ReactComponent as Logo} from '../../../img/logo/logo.svg';
import HeaderLogout, {ReactComponent as Logout} from '../../../img/icons/sign-out.svg';
class MainHeader extends React.Component {
constructor(props) {
super(props);
this.state = {
user_name: '',
user_surname: '',
user_photo: ''
}
fetch('some api')
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
if (data.success) {
this.setState({
user_name: data.user.name,
user_surname: data.user.email,
user_photo: data.user.photo
});
} else {
this.setState({
user_name: 'Sign in'
})
}
})
}
render() {
return (
<header className='Main-header'>
<div className='Main-header--items container flex'>
<div className='Main-header--logo'>
<a href='#'><img src={HeaderLogo}></img></a>
</div>
<div className='Main-header--nav' id='burger-nav'>
<nav>
<ul className='flex'>
<li><a href='#'>About me</a></li>
<li><a href='#'>Relationships</a></li>
<li><a href='#'>Requirements</a></li>
<li><a href='#'>Users</a></li>
<li><a href='#'>Sign Up</a></li>
</ul>
</nav>
</div>
<div className='User-info flex'>
<div className='User-info--data'>
<p className='User-info--name'>{this.state.user_name}</p>
<p className='User-info--email'>{this.state.user_surname}</p>
</div>
<div className='User-minimizer-photo'>
<img src={this.state.user_photo}></img>
</div>
<div className='User-logout'>
<a href='#'><Logout/></a>
</div>
</div>
<div className='toggle-menu-burger' id='open-button'>
<div className='items-burger'>
<span className='bm-burger-button'></span>
<span className='bm-burger-button'></span>
<span className='bm-burger-button'></span>
<button>Open Menu</button>
</div>
</div>
</div>
</header>
)
}
}
export default MainHeader
Мне нужно показать при нажатии на гамбургер тоже самое, но без пары div.
Как взять нужные JSX html теги? В переменные закинуть и вызывать ?
Или создать новый компонент в котором описать тот же JSX ?
Но нужно передать туда this.state которое подгружает из API данные пользователя, но если так делать в другом компоненте то this.state.* не показывает данные...
Описал как смог, если что либо не понятно я готов ответить! Спасибо за помощь