2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
一些注意點(diǎn):
添加
{}
喜歡({ light, heading, num, icon })
列出道具props
lightMode
與列表屬性不匹配light
,需要更改其中之一使用 Material-UI嵌套選擇器?
& svg
從其父 div 自定義圖標(biāo)樣式
完整代碼示例:
import React from "react";
import "./styles.css";
import GetApp from "@material-ui/icons/GetApp";
import AccountCircle from "@material-ui/icons/AccountCircle";
import { Card, CardContent, Typography, makeStyles } from "@material-ui/core";
const useLightCardStyles = makeStyles(theme => ({
? root: {},
? content: {
? ? "& svg": {
? ? ? color: "red"
? ? }
? }
}));
const useDarkCardStyles = makeStyles(theme => ({}));
const data = [
? { light: true, heading: "Accounts", num: 100, icon: <AccountCircle /> },
? { light: true, heading: "Accounts", num: 100, icon: <GetApp /> }
];
const StyledCard = ({ light, heading, num, icon }) => {
? const lightCardClasses = useLightCardStyles();
? const darkCardClasses = useDarkCardStyles();
? const classes = light ? lightCardClasses : darkCardClasses;
? return (
? ? <Card className={classes.root}>
? ? ? <CardContent>
? ? ? ? <Typography variant="h4" component="h4" className={classes.textColor}>
? ? ? ? ? {heading}
? ? ? ? </Typography>
? ? ? ? <div className={classes.content}>
? ? ? ? ? <Typography variant="h4" component="h4" className={classes.textColor}>
? ? ? ? ? ? {num}
? ? ? ? ? </Typography>
? ? ? ? ? {icon}
? ? ? ? </div>
? ? ? </CardContent>
? ? </Card>
? );
};
export default function App() {
? return (
? ? <div className="App">
? ? ? {data.map(props => (
? ? ? ? <StyledCard {...props} />
? ? ? ))}
? ? </div>
? );
}

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
我認(rèn)為這應(yīng)該有效:
const renderStyledCard = (lightMode, heading, num, icon) => {
const classes = lightMode ? useLightCardStyles(): useDarkCardStyles();
icon.style.color = "red";
return(/*....*/)
}
嘗試console.log(icon.style)
- 2 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)