根据条件是否反应更改文本颜色

Dav*_*son 3 javascript css reactjs

我想使用类似的东西来getElementById选择我的元素并更改文本颜色。我目前有一个无序列表,并希望根据 if 条件更改每个人的颜色。

<div style={styles.passwordRules}>
  <ul style={styles.listOne}>
    <li style={styles.li}><span style={styles.error} id="test">8 a 16 caratteri</span></li>
    <li style={styles.li}><span style={styles.fontNormal}>Carattere maiuscolo</span></li>
  </ul>
  <ul style={styles.listTwo}>
    <li style={styles.li}><span style={styles.fontNormal}>Un numero</span></li>
    <li style={styles.li}><span style={styles.fontNormal}>Carattere minuscolo</span></li>
  </ul>
  <ul style={styles.listThree}>
    <li style={styles.li}><span style={styles.fontLink}>Nessuna informazione personale</span></li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

这意味着,例如,我想要类似的东西:

if(text === 'foo') {
//change colour to grey
}
Run Code Online (Sandbox Code Playgroud)

请注意,我无法使用 getElementById

Car*_*rds 8

为什么不做这样的事情:

<li className={text === 'foo' ? styles.class1 : styles.class2 } .../>
Run Code Online (Sandbox Code Playgroud)


Nif*_*ift 7

从卡尔·爱德华兹的答案中分支出来,如果您只想改变颜色,那么这应该可以解决问题:

<li style={{color: text === "foo" ? "trueColor" : "falseColor"}} ... />
Run Code Online (Sandbox Code Playgroud)