You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React类组件中条件样式判断语句应写在哪个标签位置?

实现方法

你的条件判断逻辑本身没有问题,只需要把样式绑定到包裹row.data.marketD字段的第二个<Grid>标签上即可。不要把样式放到外层Box或者第一个渲染direction的Grid上,否则会把非百分比的文字也一起改色,不符合预期。

注意在MUI组件的sx样式对象中写条件表达式不需要额外包裹大括号,直接写判断逻辑即可,修正后完整代码如下:

<div>
{this.state.tableData.map((row, index)=>{
  return(
    <Box component="span" sx={{}}>
      {/* 渲染方向文本的Grid不需要加颜色样式 */}
      <Grid>{row.data.direction}</Grid>
      {/* 渲染百分比的Grid绑定条件颜色样式 */}
      <Grid sx={{
        color: row.data.marketD < 0 ? 'red' : 'green'
      }}> ({row.data.marketD}%) today </Grid>
    </Box>
  )
})}
</div>

如果你只想让百分比数字本身变色,不需要让括号、today文本跟着变色,可以把数值单独用行内标签包裹后再加样式,参考写法:

<Grid>
  (<span style={{color: row.data.marketD < 0 ? 'red' : 'green'}}>
    {row.data.marketD}%
  </span>) today
</Grid>

内容的提问来源于stack exchange,提问作者user460567

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:18:15