我正在构建一款使用R shiny、bslb和dt的应用程序.
在以前的Bootstrap版本中,使用formatStyle函数可以很容易地更改DT的样式(包括某些行的 colored颜色 ). 但是,对于新的应用程序,我们使用了bslb和bootstrap 5,该功能似乎崩溃了,即使GitHub上的用户说应该解决(https://github.com/rstudio/DT/issues/1102). 在对dt和bslb的不同版本(发布和开发)进行了一些测试后,我仍然无法使其工作.
有没有其他方法可以用bslb和bootstrap 5动态更改DT的某些成分的 colored颜色 ?
library(bslib)
library(DT)
ui <- function(id) {
card(
DT::dataTableOutpu("repeatsTable")
}
server <- function(id) ({
output$repeatsTable <- DT::renderDataTable({
repeatsDT <- DT::datatable(repeatsData(),
extensions = c("Buttons", "ColReorder"),
selection = "single",
options = list(
dom = "Bfrtip",
buttons = list(I("colvis")),
scrollX = TRUE,
colReorder = TRUE
)
) %>%
formatStyle("isPathogenic", target = "row", color = styleEqual(c(0, 1, 2), c("black", "orange", "red")))
})
})
编辑:添加可在其自身上运行的虚拟工作代码(来自链接上部)
library(shiny)
library(dplyr)
library(DT)
library(bslib)
ui <- bslib::page_sidebar(
DT::DTOutput("tab1")
)
server <- function(input, output) {
output$tab1 <- DT::renderDT({
mtcars %>%
head() %>%
# this line works
#DT::datatable(style = "default") %>%
DT::datatable() %>%
DT::formatStyle(
columns = "mpg",
target = "row",
color = DT::styleEqual(c(21), "white"),
backgroundColor = DT::styleEqual(c(21), "#4d4d4d"),
)
})
}
shinyApp(ui = ui, server = server)