为什么 Reactable 中的条件颜色样式不起作用? 数据代码问题

问题描述

数据

df <- tibble(
  x = rep(paste0( "del",1:10 ),100),y = rep(paste0( "topic",1:5 ),200),z = paste0("question",1:1000),w = 1:1000
)

代码

reactable(
  df,groupBy = c("x","y"),columns = list(
    w = colDef(
      aggregate = "mean",style = JS(
        "function(rowInfo) {
        var value = rowInfo.row.extra
        if (value > 500) {
          var color = '#008000'
        } else {
          var color = '#e00000'
        }
        return { color: color,fontFamily: 'monospace' }
      }")
    )
  )
)

问题

出于某种原因,当值确实大于 500 时,JS 代码 if (value > 500) 的计算结果不是 TRUE。 我错过了什么吗? 为什么会这样,我该如何解决

解决方法

在使用数据表(大概使用类似的 javascript 调用)时,我使用了这个包裹在 JS() 中的代码段

"
 value <= 10 ? 'green' : (value <= 15 ? 'yellow' : (value >= 15 ? 'red' : 'white'))
"

如果一个值小于 10 是绿色,10 到 15 之间是黄色,大于 15 是红色。

您需要类似的语法吗?

"
value>500 ? '#008000' : 'e00000'
"