Скажем, <componentX \>, когда onClick кнопки «создать ящик», компонент X должен добавиться внутри контейнера-контейнера. Если я щелкну поле создания 3 раза, тогда три компонента X должны добавиться внутри контейнера-контейнера (это не просто сохранение компонента, а затем скрытие и отображение при щелчке по полю создания). Какие есть способы добиться этого в ReactJS.
import ComponentX from './ComponentX.jsx';
class App extends React.Component{
constructor(){
super();
this.state = {
}
}
render(){
let board = Box;
return(
<div>
<a onClick = {}>Create Box</a>
<div className = "box-container"></div>
</div>
);
}
}
export default App;


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете условно выполнить рендеринг, используя состояние компонента следующим образом:
import ComponentX from './ComponentX.jsx';
class App extends React.Component{
constructor(){
super();
this.state = {
showComp = false;
}
}
handleClick = () => {
this.setState({
showComp: true,
})
}
render(){
let board = Box;
const { showComp } = this.state;
return(
<div>
<a onClick = {this.handleClick}>Create Box</a>
<div className = "box-container">
{showComp && <ComponentX />
</div>
</div>
);
}
}
export default App;
Попробуйте что-то вроде этого:
import ComponentX from './ComponentX.jsx';
class App extends React.Component{
constructor(){
super();
this.state = {
children: [];
}
}
appendChild(){
this.setState({
children: [
...children,
<componentX \>
]
});
}
render(){
let board = Box;
return(
<div>
<a onClick = {() => this.appendChild()}>Create Box</a>
<div className = "box-container">
{this.state.children.map(child => child)}
</div>
</div>
);
}
}
export default App;