У меня есть компонент, который имеет кнопки, когда пользователь нажимает на одну из кнопок, я хотел бы скрыть весь компонент и заменить его другим компонентом.Как скрыть родительский div и заменить его на другой div, когда пользователь нажимает кнопку, являющуюся дочерним элементом родительского div?
Я смог скрыть нажатую кнопку, но не смог скрыть весь родительский компонент при нажатии на кнопку (кнопка).
Что было бы лучшим подходом к выполнению того, что я хочу сделать?
Вот мой текущий код: (Это просто Hidding прессованной кнопки)
const ParentComponentStyle = {
width:300,
height:60,
backgroundColor:"#343458"
};
class ParentCompnent extends React.Component {
constructor(props){
super(props)
this.state = {
buttonPressed:false,
opacity:1
}
this.handleClick = this.handleClick.bind(this);
}
handleClick(evt) {
this.setState({
buttonPressed: !this.state.buttonPressed,
opacity: 0,
})
}
render(){
return(
<div className="DivToHide" style={ParentComponentStyle}>
<div onClick={this.handleClick} style={{float:'left'}}>{this.props.children[0]}</div>
<div onClick={this.handleClick} style={{float:"right", opacity: this.state.opacity}}>{this.props.children[1]}</div>
</div>
);
}
}
export default ParentComponent;
А вот компонент, который я хочу показать, как только другой было скрыт:
const ShowThisDivStyle = {
width:300,
height:200,
backgroundColor:"#343458"
};
var ShowThisDiv = React.createClass({
render: function(){
return(
<div style={ShowThisDivStyle}>
<div style={{float:'left'}}>{this.props.children[0]}</div>
<p style={{float:"left", color:"white",marginTop: "7px"}}>{this.props.children[1]}</p>
<div style={{float:"right"}}>{this.props.children[2]}</div>
<p style={{float:"right",color:"darkGray",paddingRight: "46px", marginTop: "0",fontSize:'12px', marginBottom:"0px"}}>{this.props.children[3]}</p>
<div style={{textAlign:"center"}}>{this.props.children[4]}</div>
</div>
);
}
});
export default ShowThisDiv;
Я не хочу переключаться между двумя компонентами. Поэтому в основном кнопка должна быть частью родительского компонента, и после нажатия кнопки и кнопка, и родительский компонент должны исчезнуть, и новый div заменит их – AziCode
OK , это имеет смысл. Я только что обновил свой ответ и добавил новую ссылку на код. –
Что делать, если у меня было две кнопки в начальном Divent Div, что при нажатии будет скрывать родительский div и показывать другой div. предположим, что BtnA скрывает родительский div и показывает DivA, , и в случае, если вы нажали BtnB, родительский div будет скрыт, и вместо этого будет показано DivB. Должен ли я создать другую функцию handleClick для BtnB и привязать handleClick к контексту «this» – AziCode