Я воссоздаю простое приложение React, которое я уже создал в Angular. Приложение React состоит из двух компонентов: один (меню. js) для бокового меню и второй (контент. js), который будет отображать содержимое каждого элемента в меню при нажатии каждой ссылки (как в iframe). своего рода). В приложении. js я делаю вызов REST API, чтобы заполнить состояние для компонента меню. js. Обратите внимание, что оба компонента находятся в Приложении. js следующим образом:
Приложение. js
import React,{Component} from 'react';
import Menus from './components/menus';
import Content from './components/content';
class App extends Component {
state = {
menus: []
}
componentDidMount(){
fetch('api address')
.then(res => res.json())
.then((data)=> {
this.setState({menus: data})
})
.catch(console.log)
}
render(){
return (
<div>
<div><Menus menus={this.state.menus} /></div>
<div><Content /></div>
</div>
);
}
}
export default App;
, вот меню. js компонент; он берет реквизит (меню) из приложения. js и строит ссылки меню с элементами из него:
import React from 'react';
import { BrowserRouter as Router, Link,} from "react-router-dom";
const Menus = ({ menus }) => {
return (
<Router>
<div>
<center><h1>Lessons</h1></center>
{menus.map(menu => (
<li key={menu.lesson}>
<Link to={`/lesson/${menu.lesson}`}>{menu.lessonName}</Link>
</li>
))}
</div>
</Router>
);
};
export default Menus;
Вот что мне нужно - как передать элементы из тот же реквизит (из приложения. js) для компонента контента? К вашему сведению - мне нужно, чтобы это происходило каждый раз, когда нажимается ссылка в меню в меню. js (именно поэтому в списке используется ключ ). Простая идея заключается в том, что содержимое будет обновляться в компоненте содержимого каждый раз, когда Ссылка меню в компоненте меню нажата.
**content.js**
import React from 'react'
const Content = () => {
return (
<div>{menu.content}</div>
)
};
export default Content