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

时间:2016-11-28 20:46:06

标签: 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>

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

if(text === 'foo') {
//change colour to grey
}

请注意,我无法使用 getElementById

3 个答案:

答案 0 :(得分:2)

为什么不这样做:

<li className={text === 'foo' ? styles.class1 : styles.class2 } .../>

答案 1 :(得分:0)

您可以使用以下方式执行此操作:

<li style={text ==== 'foo' ? _.extend(styles.style, styles.styleFoo) : styles.style }>

或使用ES6

<li style={text === 'fooo' ? Object.assign({}, styles.style, styles.styleFoo) : styles.style }>

答案 2 :(得分:0)

从Carl Edwards的答案中分出来,如果它只是你要改变的颜色,这应该可以解决问题:

<li style={{color: text === "foo" ? "trueColor" : "falseColor"}} ... />
相关问题