我目前正在尝试根据值是正还是负来更改表格中元素的颜色,目前这是我所拥有的,但是它无法正常工作,并且是n ^ 2,我觉得效率很低:
export const ActiveStockList = () => {
const store = useStockListStore();
var x = document.getElementsByClassName("ColorTest");
for (var i = 0; i < x.length; i++) {
for (var j = 0; j < x[i].length; j++) {
if (x[i].charAt(j) != "-") {
x[i].style.Color = "green";
} else {
x[i].style.Color = "red";
}
}
}
return useObserver(() =>
store.stocks.map((stock) => (
<tr>
<td className="justify-content-center">
<a href={"/stocks/" + stock.symbol}>{stock.symbol}</a>
</td>
<td>{+stock.latestVolume}</td>
<td className="ColorTest">
{(+stock.changePercent * 100).toFixed(2)}%
</td>
<td className="ColorTest">$ {+stock.change}</td>
<td>$ {+stock.latestPrice}</td>
<td className="ColorTest">{(+stock.ytdChange * 100).toFixed(2)}%</td>
<td>Buy</td>
<td>10,023,000</td>
<td>89.23</td>
<td>140,000</td>
</tr>
))
);
};
将三个元素更改为绿色或红色的最佳方法是什么,具体取决于它们的值是大于0还是小于0?谢谢!
我的建议。编写为内联样式。无需像使用React那样修改dom。使用实际数字和逻辑检查:
style={stockNumber <= 0 ? {color: "red"} : {color: "green"}}
或任何逻辑。如果您不想一遍又一遍地重复逻辑,请将其转换为返回样式对象的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句