我已经干了几天了,运气不太好。每当我从代码中注释掉tabsetPanels时,datatable (DT)就会显示自己。但是,当tabsetPanels留在其中时,datatable就无处可寻了。这是为什么,我怎么能解决这个问题?
library(shiny)
library(DT)
library(data.table)
# Define UI ----
ui <- fluidPage(
titlePanel("Alpha"),
mainPanel(
fluidRow(
tabsetPanel(id = 'tpanel',
type = "tabs",
tabPanel("Alpha", plotOutput("plot")),
tabPanel("Beta", plotOutput("plot")),
tabPanel("Delta", plotOutput("plot")),
tabPanel("Omega", plotOutput("plot")))
),
br(),
br(),
fluidRow(
splitLayout(
dateInput("sdate", "Start Date"),
dateInput("edate", "End Date"),
textInput("gmin", "Minimum"),
textInput("gmax", "Maximum")
)
),
br(),
DT::dataTableOutput('tbl')
)
)
# Define server logic ----
server <- function(input, output) {
output$tbl <- renderDT({datatable(port, editable = 'cell', caption = 'test')})
}
# Run the app ----
shinyApp(ui = ui, server = server)这是下面的代码输出,请注意缺少的datatable:

当我删除/注释掉tabsetPanel时,datatable将正常显示。我还应该补充的是,变量端口是从csv加载到内存中的,为了方便起见,我在那里使用了它。在启动此脚本之前,我手动加载了它,而且我只是在学习如何获得闪亮的诀窍时手动加载它。最后,当我运行以下脚本时,它将毫无问题地运行:
library(shiny)
library(DT)
library(data.table)
# Define UI ----
ui <- fluidPage(
titlePanel("Alpha"),
DT::dataTableOutput('tbl')
)
)
# Define server logic ----
server <- function(input, output) {
output$tbl <- renderDT({datatable(port, editable = 'cell', caption = 'test')})
}
# Run the app ----
shinyApp(ui = ui, server = server)当我将tabsetPanels添加到上面的代码中时,datatable不会显示。这是为什么,我怎么能修好它?
发布于 2019-12-11 09:15:31
对于plotOutput("plot")上的输出有几倍相同的ID,因此无法呈现任何输出,Shiny对此感到困惑。
以下是解决办法:
library(shiny)
library(DT)
library(data.table)
# Define UI ----
ui <- fluidPage(
titlePanel("Alpha"),
mainPanel(
fluidRow(
tabsetPanel(id = 'tpanel',
type = "tabs",
tabPanel("Alpha", plotOutput("plot1")),
tabPanel("Beta", plotOutput("plot2")),
tabPanel("Delta", plotOutput("plot3")),
tabPanel("Omega", plotOutput("plot4")))
),
br(),
br(),
fluidRow(
splitLayout(
dateInput("sdate", "Start Date"),
dateInput("edate", "End Date"),
textInput("gmin", "Minimum"),
textInput("gmax", "Maximum")
)
),
br(),
DT::dataTableOutput('tbl')
)
)
# Define server logic ----
server <- function(input, output) {
output$tbl <- renderDT({datatable(iris, editable = 'cell', caption = 'test')})
}
# Run the app ----
shinyApp(ui = ui, server = server)https://stackoverflow.com/questions/59278794
复制相似问题