У меня есть компонент под названием "Main".
Этот «основной» компонент содержит компонент под названием «House».
И этот компонент «Дом» содержит компонент с именем «ZoneButton», который содержит Кнопку.
Если я нажму кнопку, я хочу заменить компонент "Дом" другим компонентом под названием "Салон" внутри "Главного< /strong>».
(размонтировать компонент и смонтировать (загрузить) другой компонент вместо первого)
Вы знаете, как я могу это сделать? Заранее спасибо :)
EDIT Да, извините, вот мои 3 компонента
Main.js
import React, { Component } from 'react';
import SearchBar from './SearchBar';
import House from './House';
// import Salon from './Saloon';
class Main extends Component {
render(){
return(
<div>
<House />
{/* <Saloon /> */}
</div>
)
}
}
export default Main;
House.js
import ZoneButton from './ZoneButton';
import zoneHouseData from './zoneHouseData';
class House extends Component {
render(){
const zoneComponents = zoneHouseData.map(item => <ZoneButton key={item.id} zoneName={item}/>)
return(
{zoneComponents}
)
}
}
ZoneButton.js
class ZoneButton extends Component {
render() {
return(
<React.Fragment>
<Button variant="contained" color="primary" onClick={this.unmountHouse} style={styles}>{this.props.zoneName.name}</Button>
</React.Fragment>
);
}
}
export default ZoneButton
А zonHomeData.js содержит данные для кнопок
const zoneHouseData = [
{
id: 1,
symbol: '+',
name: 'Salon',
intro_text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel efficitur felis. Praesent at magna vestibulum lectus euismod interdum. Etiam mauris nulla, lacinia porttitor lacinia',
image: gray,
top: '34%',
left: '38%'
},
{
id: 2,
symbol: '+',
name: 'Cuisine',
intro_text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel efficitur felis. Praesent at magna vestibulum lectus euismod interdum. Etiam mauris nulla, lacinia porttitor lacinia',
image: gray,
top: '51%',
left: '38%'
},
{
id: 3,
symbol: '+',
name: 'Chambre',
intro_text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel efficitur felis. Praesent at magna vestibulum lectus euismod interdum. Etiam mauris nulla, lacinia porttitor lacinia',
image: gray,
top: '17%',
left: '46%'
},
]
export default zoneHouseData