【发布时间】:2020-10-15 21:50:13
【问题描述】:
我了解 CSS 无法访问 JavaScript 变量,我尝试在 HTML 标记中创建 react 对象,然后尝试使用此方法修改样式:
element.style.property = 值
但是,我在 return 语句中创建了我的 react 对象,并且因为我尝试在 return 语句之后修改对象,所以它基本上被忽略了。
被映射的元素是一个对象数组,我想访问对象中的一个值。
我的描述不是很好;希望我的代码片段能更好地展示我的问题。
export default function Chips({tags}) {
const classes = useStyles();
const handleDelete = () => {
console.info('You clicked the delete icon.');
};
const handleClick = () => {
console.info('You clicked the Chip.');
};
return (
<div className={classes.root}>
{tags.map(tag => {
const tagcolor = String(tag.color);
return (
<Chip
id="chip"
className={classes.chip}
icon={<Icon id="icon" style={{backgroundColor = {tag.color}, borderRadius: '50%'}}/>}
label={tag.title}
onClick={handleClick}
/>
)
document.getElementById("icon").style.backgroundColor = tag.color;
})}
</div>
);
}
具体问题是我想根据对象传入的值来改变Chip图标“backgroundColor”样式属性,但是CSS无法访问它,所以从不设置backgroundColor。
【问题讨论】:
-
删除
var tagcolor = String(tag.color);,你不需要它(反正也不会使用它)。同时删除document行。使用这个:style={{ backgroundColor: tag.color, borderRadius: '50%' }}(不过,我会将边框半径放在 CSS 代码中) -
你可以用jss
标签: javascript reactjs react-native dom material-ui