如何在CSS中使用javaScript对象键的值?

时间:2019-10-27 17:32:28

标签: javascript css reactjs sass styling

我正在反应中映射对象数组,并将其渲染到屏幕上,每个对象都有自己的卡片,非常基本。我的问题是每个对象中都有不同的十六进制颜色属性,并且使用Sass,我想将每个卡的字体颜色设置为对象中的颜色,但是我不知道如何将该值传递给Sass / css。

// array I'm mapping
// fixed unescaped js comment
const array = [
   {
    title: 'this is object one\'s the title',
    color: #979696
  },
   {
    title:'this is object two\'s title',
    color: #8C64E6
  }
]
// component formatting array values

const card = props => (
  <h3 className='title'>{props.title}</h3>
)
// css
.title {
  color: ????
}

3 个答案:

答案 0 :(得分:2)

如果您未在styled components这样的js解决方案中使用某种CSS,就无法将其传递给您的sass。

但是在这种情况下,您可以执行以下操作:

const card = props => (
  <h3 
    className='title'
    style={{ color: props.color }}
  >
    {props.title}</h3>
)

答案 1 :(得分:0)

您可以在JSX中编写inline CSS。假设您将样式作为道具传递给名为styleObject的对象,则可以按如下所示添加color属性:

const Card = props => {
    const color = props.styleObject.color
    const title = props.styleObject.color
    return (
        <h3 style={{ color: color }}>{title}</h3>
    )
}

此外,如果要为数组中的每个对象渲染标题,则可以按以下步骤进行操作:

const Cards = props => {
    const array = props.array
    return array.map(heading => (
        <h3 key={heading.title} color={heading.color}>
            {title}
        </h3>
    ))
}

答案 2 :(得分:0)

我不确定我能否正确回答您的问题,但是您可以直接使用内联样式

const array = [
   {
    title: 'this is object one's the title',
    color: #979696
  },
   {
    title:'this is object two's title',
    color: #8C64E6
  }
]
// component formatting array values

const card = props => (
  <h3 style={{color:a.color}}>{props.title}</h3>
)