javascript - 如何显示 react 选择的工具提示?

标签 javascript reactjs react-select

我需要使用 react-tooltip 显示 react-select 容器的工具提示(不是单独的选项)图书馆。
我自己制作了SelectContainer组件基于原始组件并添加到那里 data-tipdata-for HTML 属性。工具提示出现,但是当我更改所选值时,它消失并且不再显示。
这是我的代码:

const getSelectContainer = options => props => {
  return (
    <components.SelectContainer
      {...props}
      innerProps={{
        ...props.innerProps, ...{
          'data-tip': options.tooltipText,
          'data-for': options.tooltipId,
        }
      }}
    />
  )
}

const CustomSelect = (props) => {
  const tooltipId='tooltip_id'
  const tooltipText='tooltip'
  const selectedOption = colourOptions.filter(option => option.value === props.value)
  
  return (
    <div>
      <ReactTooltip effect="solid" html={true} place="bottom" id={tooltipId} />
      <Select
        defaultValue={colourOptions[4]}
        value={selectedOption}
        options={colourOptions}
        classNamePrefix="react-select"
        onChange={item => props.onChange(item.value)}
        className="my-select"
        components={{
          SelectContainer: getSelectContainer({
            tooltipText:tooltipText,
            tooltipId:tooltipId
          })
        }}
      />
    </div>
  )
}

class Page extends Component {
  constructor (props) {
    super(props)
    this.state = {
      selectValue: 'red'
    }
  }
  render () {
    const onChange = (value)=> {
      this.setState({selectValue: value})
      //alert(value)
    }
    return (
      <CustomSelect
        value={this.state.selectValue}
        onChange={onChange}>
      </CustomSelect>
    )
  }
}
查看全文 example here :
如果我包装 Select与另一个 <div>并为其分配工具提示 HTML 属性,一切正常,但我不想为此再添加一个 DOM 元素。
更改选择后如何显示工具提示?

最佳答案

当状态改变时,尝试重建 react-tooltip。

useEffect(() => {
    ReactTooltip.rebuild();
}, [state]);

关于javascript - 如何显示 react 选择的工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377377/

相关文章:

javascript - react-router Router.HistoryLocation 用 <noscript> 留下目标,但没有完美地工作

reactjs - React Select 在 onChange 参数中传递多个选项

javascript - 如何让 Knockout JS 在按键上进行数据绑定(bind)而不是失去焦点?

javascript - 数组元素上的简洁事件监听器

javascript - React 和 Prettier/eslint 应用程序循环运行脚本

reactjs - Material-UI XGrid - 如何防止删除键删除单元格内容

reactjs - 如何使用另一个 react 选择的值在 react 选择中制作过滤器

javascript - react-select createable option - 添加组标签

javascript - 更新时无法删除 D3 中的圈子

javascript - 为什么 jQuery 接受数组作为参数?