reactjs React和Fluent UI风格-类型“string”不能赋值给类型“undefined”

but5z9lq  于 2023-08-04  发布在  React
关注(0)|答案(1)|浏览(111)

我有一个来自FluentUI库的Card组件。我想将鼠标悬停在卡片上并更改边框的颜色。这是我的尝试,但由于某种原因,我有下面的错误:
类型“string”不能分配给类型“undefined”

const useStyles = makeStyles({
        card: {
            width: '100px',
            height: '100px',
            "&:hover": {
                borderRadius: "20px",
                background: "#FF",
                boxShadow: 'another value here',
            },
        },
    });

字符串
为什么我试图在&:hover部分初始化的所有值都出现相同的错误?如何初始化它们?

fnx2tebb

fnx2tebb1#

您遇到的错误“type 'string' is not assignable to type 'undefined'”可能是因为您正在使用的库中的makeStyles函数期望某些值作为特定类型提供,而您传递的值不正确。
看起来你正在尝试使用Material-UI中的makeStyles钩子,而不是Fluent UI。makeStyles钩子设计用于Material-UI的样式化解决方案,指定样式的格式与常规CSS略有不同。
要解决这个问题并在悬停时应用样式,需要使用Material-UI提供的makeStyles钩子。下面是更正的代码:

import { makeStyles } from '@material-ui/core/styles';
    
    const useStyles = makeStyles({
      card: {
        width: '100px',
        height: '100px',
        borderRadius: '10px', // Initial border-radius value
        transition: 'border-radius 0.3s, background 0.3s', // Add transitions for smooth hover effect
        '&:hover': {
          borderRadius: '20px', // New border-radius value on hover
          background: '#FF', // New background color on hover
          boxShadow: 'another value here', // Add your desired boxShadow value for the hover state
        },
      },
    });
    
    function MyCard() {
      const classes = useStyles();
    
      return <div className={classes.card}>Your card content here</div>;
    }

字符串
确保您已经安装了Material-UI(npm install @material-ui/core)并正确导入了必要的组件。
通过这些更改,当您将鼠标悬停在卡片上时,border-radius、背景色和boxShadow将根据&:hover部分中指定的样式进行更新。

相关问题