在reactjs

时间:2017-06-15 11:27:31

标签: css reactjs

我已经创建了几个具有特定内容标题的部分。

我想在不同部分上方悬停显示一个简短的预览。

有没有人知道如何使用条件渲染反应组件来创建hoverActionHandler?

1 个答案:

答案 0 :(得分:28)

您可以使用onMouseEnteronMouseLeave来更改状态,并根据状态值有条件地渲染组件。

查看实际操作:https://codesandbox.io/s/XopkqJ5oV

import React, { Component } from 'react';

class HoverExample extends Component {
  constructor(props) {
    super(props);
    this.handleMouseHover = this.handleMouseHover.bind(this);
    this.state = {
      isHovering: false,
    };
  }

  handleMouseHover() {
    this.setState(this.toggleHoverState);
  }

  toggleHoverState(state) {
    return {
      isHovering: !state.isHovering,
    };
  }

  render() {
    return (
      <div>
        <div
          onMouseEnter={this.handleMouseHover}
          onMouseLeave={this.handleMouseHover}
        >
          Hover Me
        </div>
        {
          this.state.isHovering &&
          <div>
            Hovering right meow! 
          </div>
        }
      </div>
    );
  }
}