1

我正在使用 React Tippy——一个基于 Tippy.js 的 React 组件。我想使用记录在案的setIsOpen 方法- 但它不起作用。

TypeError: setIsOpen is not a function.

似乎找不到与此相关的任何文档或问题。有任何想法吗?

我的代码是:

<Tooltip
  position="right"
  animation="scale"
  arrow="true"
  arrowSize="big"
  theme="light"
  trigger="click focus"
  interactive
  open={open}
  html={(
    <div className="tooltip-body">
      <span className="info icon-sm-info"></span>
      <span className="close" onClick={() => { setIsOpen(false) }}>&#215;</span>
      <h5>Hello</h5>
      <div>Tooltip Content</div>
    </div>
  )}
>
<span className="icon-sm-info">Hello</span>
</Tooltip>
4

2 回答 2

0

我发现了如何通过使用状态来做到这一点。

class ToolTip extends React.Component {
   constructor(props) {
      super(props);

      this.state = {
         open: false
      }
   }

   setIsOpen = (option) => {
      this.setState({
         open: option
      });
   }

<span className="close" onClick={() => {this.setIsOpen(false)}}>&#215;</span>
于 2018-02-27T12:37:24.600 回答
0

您的国家 :

this.state = {open : false}

setIsOpen = () => {
this.setState(state => { open : true});
}

更新代码

<Tooltip
  position="right"
  animation="scale"
  arrow="true"
  arrowSize="big"
  theme="light"
  trigger="click focus"
  interactive
  open={open}
  html={(
    <div className="tooltip-body">
      <span className="info icon-sm-info"></span>
      <span className="close" onClick={() => { this.setIsOpen() }}>&#215;</span>
      <h5>Hello</h5>
      <div>Tooltip Content</div>
    </div>
  )}
>
<span className="icon-sm-info">Hello</span>
</Tooltip>
于 2018-02-27T11:50:57.920 回答