【发布时间】: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)
此应用程序启动,它显示导航栏,但不显示数据集。任何提示我把命令放在哪里?对我来说,问题是服务器模块没有明显的条件需要做出反应。这种情况下该怎么办?
【问题讨论】: