样式道具中 CSS 变量的 Reactjs 问题

Reactjs problem with CSS variable in style prop

首先,这是我的代码:

<div className="phone" style="--bg: var(--green)">

但错误如下:

错误:style 道具需要从样式属性到值的映射,而不是字符串。比如使用JSX时style={{marginRight: spacing + 'em'}}.

所以我把代码改成了

<div className="phone" style={{--bg: var(--green)}}>
    <div className="name">So dien thoai</div>
</div>
<div className="fb" style={{--bg: var(--blue)}}>
    <div className="name">Facebook</div>
</div>
<div className="gg" style={{--bg: var(--red)}}>
    <div className="name">Google</div>
</div>

:root{
  --red: #ee4d2d;
  --blue: #0288d1;
  --green: #6cc942;
}
.phone, .fb, .gg{
    display: flex;
    padding: 4px 0;
    border: 1px solid black;
    background: var(--bg);
    
    .name{
        padding-left: 20px;
    }
}

他们告诉我不能在 style={{ }}

中使用 --bg
style={{'--bg': 'var(--green)'}}

在 JSX 中你必须像上面那样使用 style 属性。

第一个(外部){} 是 JSX 语法,内部 {} 是表示样式 properties/values.

的实际 javascript 对象

ReactDOM.render(<div style={{'--bg': 'var(--green)'}}/>, document.body)
body{ --green: green }

div{
  width: 200px;
  height: 100px;
  background: var(--bg); /* using the variable defined from JSX */
}
<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>


建议你下次去Google the error instead of rushing to open a new question here, as there is a ton of information on Google

example: style={{color: "var(--red)"}} not ";"
style={{ "--bg": "var(--red)", background: "var(--bg)" }}
demo: https://codesandbox.io/s/ecstatic-keldysh-4dspr?file=/src/App.js