我测试了一个基本的闪亮仪表板应用程序,其中输入小部件放置在一个选项卡中,而结果呈现在另一个选项卡中。第一次运行没问题,但在第二个选项卡中显示结果后,无法切换回第一个选项卡来更改输入值。
library(shiny)
library(shinydashboard)
library(tidyverse)
myDF <- data.frame( let = letters, id = seq(1, length(letters)))
myHead <- dashboardHeader(
title = "Trial"
)
mySideB <- dashboardSidebar(
menuItem(
"tab1", tabName = "tab1"
),
menuItem(
"tab2", tabName = "tab2"
)
)
myBody <- dashboardBody(
tabItems(
tabItem(
tabName = "tab1",
box(
title = "Selection",
selectInput(
inputId = "sel1",
label = "Select a letter",
choices = myDF$let,
selected = ""
)
)
),
tabItem(
tabName = "tab2",
box(
title = "Results",
textOutput(outputId = "res")
)
)
)
)
ui <- dashboardPage(
myHead,
mySideB,
myBody
)
server <- function(input, output) {
filtDF <- reactive({
myDF %>%
filter(let %in% input$sel1) %>%
select(id) %>%
as.character()
})
output$res <- renderText({ filtDF() })
}
shinyApp(ui = ui, server = server)
我阅读了几个主题,并测试了已发布的示例,但很简单,我看不出上面的代码有什么问题。有什么建议吗?
mySideB <- dashboardSidebar(
sidebarMenu(
menuItem(
"tab1", tabName = "tab1"
),
menuItem(
"tab2", tabName = "tab2"
)
)
)