You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MUI过期卡片组件设置为禁用状态?

解决方案

问题出在你的CurrentSales是自定义组件,你传入的disabled属性不会自动生效——自定义组件需要显式接收这个props,并把它传递给内部的MUI卡片组件,同时处理禁用状态的样式或交互逻辑。

步骤1:修改CurrentSales组件,接收并处理disabled属性

假设你的CurrentSales内部用了MUI的Card组件,需要这样修改:

// CurrentSales.jsx
import { Card, CardContent } from '@mui/material';

const CurrentSales = ({ item, disabled = false }) => {
  return (
    <Card 
      sx={{
        // 自定义禁用状态的视觉样式
        opacity: disabled ? 0.6 : 1,
        pointerEvents: disabled ? 'none' : 'auto',
        cursor: disabled ? 'not-allowed' : 'default',
        border: disabled ? '1px solid rgba(0,0,0,0.12)' : 'none'
      }}
    >
      <CardContent>
        {/* 你的卡片内容,比如{item.name}、{item.date}等 */}
        {item.title}
      </CardContent>
    </Card>
  );
};

export default CurrentSales;

如果你的组件内部包含可交互元素(比如按钮),还要把disabled传递给这些元素:

// 示例:给内部按钮添加禁用属性
<Button disabled={disabled}>操作</Button>

步骤2:保持映射代码不变

你原来的映射代码可以继续使用,disabled属性现在会被CurrentSales组件接收并处理:

{expired && 
  expired.map((item, i) => <CurrentSales disabled key={item.id ?? i} item={item} />)}

补充说明

  • MUI的Card组件本身没有原生disabled属性,所以需要通过样式来实现视觉上的禁用效果;如果用的是CardActionArea这类支持disabled的组件,可以直接把属性传递过去。
  • 要是需要更贴合MUI的禁用风格,可以参考MUI官方组件的禁用样式参数,确保视觉统一。

内容的提问来源于stack exchange,提问作者Fausto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:40:57