我是 React 初学者,正在尝试使用卡片组件构建仪表板。我有一个渲染卡片元素的 React 组件,并且对于每张卡片,对于mouseenter
和具有相同的处理程序事件mouseleave
。:hover
当鼠标悬停在一个小部件上时,预期的行为是查看样式。但是,我似乎所有的小部件都具有这种:hover
风格。如何更改代码,以便只有一个鼠标悬停显示悬停状态,而不是全部?
class Board extends Component {
constructor(props) {
super(props) {
this.showHoverBorder = this.showHoverBorder.bind(this);
this.hideHoverBorder = this.hideHoverBorder.bind(this);
this.state = {
isHoverStyleOn: false,
layouts: {
lg: [
{ i: "a", x: 0, y: 0, w: 1, h: 1 },
{ i: "b", x: 2, y: 0, w: 1, h: 1 },
{ i: "c", x: 2, y: 0, w: 1, h: 1 },
{ i: "d", x: 3, y: 0, w: 1, h: 1 },
{ i: "e", x: 0, y: 1, w: 1, h: 1 },
{ i: "f", x: 0, y: 1, w: 1, h: 1 }
]}
}
showHoverBorder() {
this.setState({ isHoverStyleOn: true })
}
hideHoverBorder(hmm) {
this.setState({ isHoverStyleOn: false })
}
}
render() {
let widget = "widget";
if(this.state.isHoverStyleOn) {
widget += ' widget-hover';
} else { widget = "widget"; }
return (
<div layouts={this.state.layouts}>
{this.state.layouts.lg.map((w) => ((
<div key={w.i} className={widget}>
<div className="widget-body">
<div className="widget-bar" onMouseEnter={this.showHoverBorder} onMouseLeave={this.hideHoverBorder}>
</div>
<div className="widget-graph"></div>
</div>
</div>
)))}
</div>
)
}
}
export default Board;