AntDesignのTooltipでdisabled的な事をしたい
8184 ワード
結論
trigger
のpropsに''
を渡すとTooltipが表示されなくなるハック的なやり方です。
<Tooltip trigger={disabled ? '' : 'hover'}>
{children}
</Tooltip>
↓こんな感じ
import React from 'react'
import { Tooltip as AntTooltip, TooltipProps } from 'antd'
type Props = { disabled: boolean } & TooltipProps
const Tooltip: React.FC<Props> = ({ disabled, children, trigger, ...props }) =>
<AntTooltip
{...props}
trigger={disabled ? '' : trigger}
>
{children}
</AntTooltip>
課題
Tooltipにdisabled的なpropsが存在しない
Buttonコンポーネントの様にdisabledを指定して、特定の条件の時だけtooltipが表示されないようにしたい!
しかし、AntdのTooltipのAPI部分を見る限り、その様なものはない。
open propは違う
openなどはtrueにするとtooltipを表示するpropなので、
この条件の時は何をしても表示しないみたいな事ができない。
現状ではtriggerでハックできる
triggerに''
を渡すとTooltipの表示を防ぐ事を利用して、下記の様なラッパーコンポーネントを作ったりして一応は対策が可能…だが。
ハック的なやり方なので、antdのアップデートで急にできなることも考慮して使う必要がある。
import React from 'react'
import { Tooltip as AntTooltip, TooltipProps } from 'antd'
type Props = { disabled: boolean } & TooltipProps
const Tooltip: React.FC<Props> = ({ disabled = false, children, trigger, ...props }) =>
<AntTooltip
{...props}
trigger={disabled ? '' : trigger}
>
{children}
</AntTooltip>
Author And Source
この問題について(AntDesignのTooltipでdisabled的な事をしたい), 我々は、より多くの情報をここで見つけました https://zenn.dev/tokiya_horikawa/articles/76accd97e6114e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol