Obecnie tworzę rozwijany przycisk, aby nauczyć się React. Zrobiłem dwa zdarzenia onMouseEnter i onMouseLeave w div jednostki nadrzędnej, aby były widoczne, gdy najechanie zniknie, gdy nie. Problem polega na tym, że te wydarzenia wiążą się tylko z rodzicem.W jaki sposób uczynićMouseLeave w React, należy uwzględnić kontekst podrzędny?
W jaki sposób uczynićMouseLeave w React, należy uwzględnić kontekst podrzędny? Lub, w jaki sposób sprawić, by stan rozwinął się, gdy wisiał na dzieciach?
class DropDownButton extends React.Component {
constructor(){
super();
this.handleHoverOn = this.handleHoverOn.bind(this);
this.handleHoverOff = this.handleHoverOff.bind(this);
this.state = {expand: false};
}
handleHoverOn(){
if(this.props.hover){
this.setState({expand: true});
}
}
handleHoverOff(){
if(this.props.hover){
this.setState({expand: false});
}
}
render() {
return (
<div>
<div className={styles.listTitle}
onMouseEnter={this.handleHoverOn}
onMouseLeave={this.handleHoverOff}>
{this.props.name}
</div>
<div>
{React.Children.map(this.props.children, function(child){
return React.cloneElement(child, {className: 'child'});
})}
</div>
</div>
);
}
}
Działa. Zrobiłem głupi błąd, a rendering warunkowy jest dla mnie przydatny. Dzięki! –