开发者问题收集

用js映射数组后如何改变样式?

2022-06-26
102

如果元素“tr.amount”大于 0,我想将其颜色改为绿色

我尝试使用下面的代码,但它给出了这个错误:Uncaught TypeError:无法设置未定义的属性(设置“color”)

提前致谢!

{userData.transactions.length > 0 &&
   userData.transactions.map((tr) => (
       <tr className="border">
         <td> <span className="history-category">{tr.category}</span></td>
         <td className="amount">{tr.amount > 0 ? tr.amount.style.color = "green" : tr.amount.style.color = "red"}</td>
         <td>{tr.date}</td>
       </tr>
))}
2个回答

您可能希望使用 td 本身的 style 属性。

<td className="amount" style={{ color: tr.amount > 0 ? "green" : "red" }}>
  My Content
</td>
行中的某些内容
maticzav
2022-06-26

您使用的是 tr.amount.style.color ,而不是 tr.style.color

Elias Amha
2022-06-26