【问题标题】:Shiny Module for Displaying a Table用于显示表格的闪亮模块
【发布时间】:2021-03-20 07:55:27
【问题描述】:

开始使用闪亮,我尝试学习如何使用闪亮模块设计模式。作为最简单的示例,我想显示一个数据集,而无需任何进一步的交互。

我希望在 tabPanels 的 navbarPage 中组织 UI。每个面板都是相互独立的,(除了所有面板都使用全局数据库连接对象,但这并不困扰我)。

这是 DT GUI 元素的代码:

library(shiny)
library(DT)

tabTable <- function(id) {
    ns <- shiny::NS(id)
    tabPanel(
        "Table",
        shiny::dataTableOutput(ns("table"))
    )
}

这是服务器逻辑。我想让它绘制数据表。

srvTable <- function(id, dat) shiny::moduleServer(id,
    function(input, output, session) {
        output$table <- shiny::renderDataTable({DT::datatable(dat)})
    }
)

现在这里是 ui 和服务器的定义:

ui <- shiny::navbarPage(title="Test",
    tabTable(id="iris"),
    shiny::tabPanel(title="Scatter")
)

server <- function(input, output, session) {
    srvTable(id="iris", dat=iris)
    session$onSessionEnded(stopApp)
}

shiny::shinyApp(ui, server)

此应用程序启动,它显示导航栏,但不显示数据集。任何提示我把命令放在哪里?对我来说,问题是服务器模块没有明显的条件需要做出反应。这种情况下该怎么办?

【问题讨论】:

    标签: r shiny dt


    【解决方案1】:

    试试这个

    library(shiny)
    library(DT)
    
    tabTable <- function(id) {
      ns <- shiny::NS(id)
      tabPanel(
        "Table",
        DTOutput(ns("table"))
      )
    }
    
    srvTable <- function(id, dat) { shiny::moduleServer(id,
                                                      function(input, output, session) {
                                                        output$table <- renderDT({DT::datatable(dat)})
                                                      }
    )}
    
    ui <- shiny::navbarPage(title="Test",
                            tabTable(id="iris"),
                            shiny::tabPanel(title="Scatter")
    )
    
    server <- function(input, output, session) {
      srvTable(id="iris", dat=iris)
      session$onSessionEnded(stopApp)
    }
    
    shiny::shinyApp(ui, server)
    

    【讨论】:

    • 太好了,谢谢!仅供参考,renderDTDTOutputDT 包的一部分。
    • 是的,他们是。 DT包描述最好使用renderDT
    猜你喜欢
    • 1970-01-01
    • 2017-12-09
    • 2017-01-09
    • 1970-01-01
    • 2021-07-17
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多