使用内联样式添加悬停效果以反应 div

TRo*_*esh 1 javascript css sass reactjs

我有一个圆形的 div,显示圆形的csscircle属性是从类中获取的。圆形 div 的颜色取自内联样式。这里使用了一个调用的函数Status(),它将返回十六进制颜色代码。圆圈根据我们传递给 Status 函数的状态呈现颜色。为了实现悬停效果,我向样式对象添加了 ':hover' 属性,但它不起作用。这是我尝试过的代码。关于如何实现这一目标有什么想法吗?我需要在鼠标悬停时向圆圈添加边框/发光。

<div
  className="circle"
  style={{
   backgroundColor: Status('new'),
   ':hover': {
     boxShadow: `0px 0px 4px 2px ${Status('complience')}`,
    },
   }}
 />
Run Code Online (Sandbox Code Playgroud)

Dyo*_*Dyo 6

尝试添加&之前:hover

这对于内联样式是不可能的,您可能需要使用onMouseEnteronMouseLeaveprops 来获取悬停状态并使用它,例如:

class MyComponent extends React.Component {
  state= {
    hover: false,
  }
  handleMouseEnter = () => {
    this.setState({ hover: true });
  }
  handleMouseLeave = () => {
    this.setState({ hover: false });
  }
  render() {
    const { hover } = this.state;
    return(
      <div
        className="circle"
        style={{
          backgroundColor: Status('new'),
          ...(hover && { boxShadow: `0px 0px 4px 2px ${Status('complience')}`}),
        }}
        onMouseEnter={this.handleMouseEnter} // Or onMouseOver
        onMouseLeave={this.handleMouseLeave}
      />
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

备择方案 :