【问题标题】:Disabling <a> tag using Ant Design UI Library使用 Ant Design UI 库禁用 <a> 标签
【发布时间】:2021-09-30 09:59:57
【问题描述】:

有没有办法使用 antd UI 库禁用链接?根据 MDN disabled 属性不支持 a 标签。以下实现在使用 React 时确实有效,但在使用 Next.js 时,链接仍然是可点击的。

<Tooltip title={tooltip}>
 <a onClick={handleAddToCart} disabled={quantity < 1}>
   <ShoppingCartOutlined className="text-danger" /> <br />
   {quantity < 1 ? 'Out of stock' : 'Add to Cart'}
 </a>
</Tooltip>

【问题讨论】:

    标签: javascript html next.js antd


    【解决方案1】:

    disabled 确实不是链接的属性,因为禁用的链接只是文本。

    如果你仍然想要一个禁用的链接,那么你必须做两件事

    • onClick 处理程序被禁用时删除它(或让 handleAddToCart 不做任何事情)
    • 然后以“禁用”的方式设置组件的样式。

    这是一个例子

    const isOutOfStock = quantity < 1;
    
    return (
      <Tooltip title={tooltip}>
       <a onClick={isOutOfStock ? null : handleAddToCart} className={isOutOfStock ? 'isDisabled' : ''}>
         <ShoppingCartOutlined className="text-danger" /> <br />
         {isOutOfStock ? 'Out of stock' : 'Add to Cart'}
       </a>
      </Tooltip>
    )
    

    那么你禁用的 css 可以是这样的

    .isDisabled {
      pointer-events: none; // disabled click & hover
      opacity: 0.6; // make it a bit opaque
    }
    

    【讨论】:

      【解决方案2】:

      另外,由于您使用的是 Ant Design,您可以使用来自 TypographyLink 组件并添加一个 disabled 属性。无需编写自定义 CSS。

      import { Typography } from 'antd'
      
      <Typography.Link href="https://ant.design" disabled>disabled link<Typography.Link>
      

      【讨论】:

        猜你喜欢
        • 2020-03-01
        • 2021-02-02
        • 2020-04-11
        • 1970-01-01
        • 2019-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多