如何在 Material UI 中动态更改对象中的属性值?

D P*_*ark 3 ecmascript-6 reactjs material-ui

listItemuseStyles外面定义了一个名为in 的属性,TodoListItem如下所示:

const useStyles = makeStyles(theme => ({
        listItem: {
            textDecoration: 'none'
        }
    })
)

const TodoListItem({checked}) => {
    const classes = useStyles();
    return <ListItemText className={classes.listItem} primary={text}/>
};

Run Code Online (Sandbox Code Playgroud)

然后我想textDecoration根据名为 的变量更改状态checked。我尝试直接使用checked变量 inuseStyles但不起作用,因为它超出了范围。

textDecoration: checked ? 'line-through' : 'none'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我应该如何将checked变量传递useStyles给三元运算符以使其工作?

Rem*_*ber 7

makeStyles支持动态样式的自定义道具的CSS 属性:

const useStyles = makeStyles(theme => ({
    listItem: {
        textDecoration: ({checked}) => checked ? 'line-through' : 'none'
    }
}));

const Component = props => {
    const classes = useStyles({checked: props.checked});
    
    ...
}
Run Code Online (Sandbox Code Playgroud)