首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应-工具提示,工具提示移动到下一个组件,给组件提供两个工具提示。

响应-工具提示,工具提示移动到下一个组件,给组件提供两个工具提示。
EN

Stack Overflow用户
提问于 2020-06-24 03:47:09
回答 1查看 517关注 0票数 0

我有多个图标,每个图标都有一个独特的工具提示建议。这些图标随着时间的推移而变化,因此需要更新生成的工具提示。但是,当图标发生变化时,就好像工具提示找不到图标一样,因此锁定到最近的图标,这样就可以在某个地方存在。结果是一个图标有2个工具提示,而另一个图标没有工具提示。这是我的反应代码

AnswerStatusIcon.js

代码语言:javascript
复制
import React, { useEffect, useState } from 'react'
import * as Icon from 'react-feather'
import ReactTooltip from 'react-tooltip'

function answered(){
  return(
    <div className="mx-auto">
      <Icon.Check
        className="w-5 h-5 text-theme-9 mx-auto"
        data-for="1"
        data-tip=""
      />
      <ReactTooltip place="left" id="1">
        Question is answered
      </ReactTooltip>
    </div>
  )
}
function notAnswered(){
  return(
    <div className="mx-auto">
      <Icon.AlertTriangle
        className="w-5 h-5 text-theme-12 mx-auto"
        data-for="2"
        data-tip=""
      />
      <ReactTooltip place="left" id="2">
        Question was skipped
      </ReactTooltip>
    </div>
  )
}
function marked() {
  return(
    <div className="mx-auto">
      <Icon.Crosshair
        className="w-5 h-5 text-theme-11 mx-auto"
        data-for="3"
        data-tip=""
      />
      <ReactTooltip place="left" id="3">
        Question was NOT answered and marked for review
      </ReactTooltip>
    </div>
  )
}
function answeredAndMarked() {
  return(
    <div className="mx-auto">
      <Icon.UserCheck
        className="w-5 h-5 text-theme-9 mx-auto"
        data-for="4"
        data-tip=""
      />
      <ReactTooltip place="left" id="4">
        Question was answered AND marked for review
      </ReactTooltip>
    </div>
  )
}
function notVisited() {
  return( 
    <div className="mx-auto">
      <Icon.AlertCircle
        className="w-5 h-5 text-gray-600 mx-auto"
        data-for="5"
        data-tip=""
      />
      <ReactTooltip place="left" id="5">
        Haven't visited question yet
      </ReactTooltip>
    </div>
  )
}
function defaultStatus() {
  return(
    <div className="mx-auto">
      <Icon.AlertCircle
        className="w-5 h-5 text-gray-600 mx-auto"
        data-for="6"
        data-tip=""
      />
      <ReactTooltip place="left" id="6">
        Haven't visited question yet
      </ReactTooltip>
    </div>
  )
}

function AnswerStatusIcon(props) {

  if (props.answer && props.marked.includes(props.questionId)) {
    return answeredAndMarked()
  } else if (props.answer) {
    return answered()
  } else if (props.visited && props.marked.includes(props.questionId)) {
    return marked()
  } else if (props.visited && props.currentQuestion === props.questionId) {
    return notVisited()
  }
  return defaultStatus
}
  
export { AnswerStatusIcon }

QuestionButton.js

代码语言:javascript
复制
import React, { useState, useEffect, useRef } from 'react'

import { AnswerStatusIcon } from './AnswerStatusIcons'

function QuestionButton(props) {
  const didMountRef = useRef(false);
  const [visited, setVisited] = useState(false)

  useEffect(() => {
    if (didMountRef.current) {
      if (props.currentQuestion === props.questionId) {
        setVisited(true)
      }
    } else didMountRef.current = true;
  }, [props.currentQuestion, props.questionId, visited])

  return (
    <div
      style={{ cursor: 'pointer' }}
      onClick={() => props.onClickQuestion(props.questionId)}
      className={
        'border text-gray-700 py-1 p-3 rounded relative font-medium mx-2' +
        (props.currentQuestion === props.questionId
          ? ' border-gray-700 bg-gray-200 text-gray-600'
          : ' border-gray-400')
      }
    >
      {props.questionId + 1}
      <AnswerStatusIcon
        answer={props.answer}
        marked={props.markedQuestions}
        questionId={props.questionId}
        visited={visited}
      />
    </div>
  )
}

export { QuestionButton }
EN

回答 1

Stack Overflow用户

发布于 2020-06-27 11:57:09

真正的答案是使用@reach/工具提示库代替,我让它在2分钟内工作.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62547279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档