DataTable R Shiny 中的 rclipButton

rclipButton in DataTable R Shiny

我希望将一个 rclipboard::rclipButton() 插入到 RShiny 中的 DataTable 中,但我不知道该怎么做。已尝试以下(基于:Using renderDataTable within renderUi in Shiny):

library(shiny); library(tidyverse); library(rclipboard)
    
ui <- fluidPage(
    mainPanel(
        rclipboardSetup(),
        uiOutput('myTable')
    )
)

server <- function(input, output) {
    output$myTable <- renderUI({
        output$myTable <- renderUI({
            iris <- iris %>% filter(row_number()==1:2)
            iris$button <- rclipButton(
                inputId = "clipbtn",
                label = "Copy",
                clipText = "test",
                icon = icon("clipboard")
            )
            output$aa <- renderDataTable(iris)
            dataTableOutput("aa")  
        })
    })
}

shinyApp(ui, server)

但看起来像这样: "[object Object]"

也尝试过将 rclipButton() 粘贴到 DataTable 中,但只呈现为 HTML.

的长字符串

非常感谢任何建议!

嗯,rclipButton()调用会生成shiny.tag个对象,需要改成字符串,DT才能解析。那么关键就是在datatable.

中使用escape = F

我也重写了生成DT的方式table。

library(shiny); library(tidyverse); library(rclipboard)

ui <- fluidPage(
    mainPanel(
        rclipboardSetup(),
        DT::dataTableOutput("aa")  
    )
)

server <- function(input, output) {
    output$aa <- DT::renderDataTable({
        iris2 <- iris %>% filter(row_number()==1:2)
        iris2$button <- rclipButton(
            inputId = "clipbtn",
            label = "Copy",
            clipText = "test",
            icon = icon("clipboard")
        ) %>% as.character()
        DT::datatable(iris2, escape = F)
    })
}

shinyApp(ui, server)