【发布时间】:2020-01-04 10:15:20
【问题描述】:
让我们看看下面的 R Shiny 仪表板代码,在主菜单中有 'navbarPage' 布局和 2 个项目“第一页”和“第二页”。每个页面都有具有相同元素(1、2、3)的选择器“Selector”。如何同步两个“selectizeInput”元素以显示相同的值存在问题。
例如,如果在“第一页”上选择“2” - 当用户转到“第二页”时,“第二页”上的选择器应该具有“2”值,反之亦然。我想可以使用 R 会话的某种全局变量。很高兴知道您的想法和代码如何有效地实施。
library(shiny)
server <- function(input, output, session) {
# 1. Selector for 'Page one'
output$uo_page_one_selector <- renderUI({
# 1. Values
list_values <- c(1:3)
names(list_values) <- c("One", "Two", "Three")
# 2. Index of selected element
index_selected <- 1
# 3. Result
selectizeInput('si_page_one_selector', "Selector",
choices = list_values, multiple = FALSE,
selected = list_values[index_selected])
})
# 2. Selector for 'Page two'
output$uo_page_two_selector <- renderUI({
# 1. Values
list_values <- c(1:3)
names(list_values) <- c("One", "Two", "Three")
# 2. Index of selected element
index_selected <- 1
# 3. Result
selectizeInput('si_page_two_selector', "Selector",
choices = list_values,
multiple = FALSE,
selected = list_values[index_selected])
})
}
ui <- fluidPage(
navbarPage("Demo",
tabPanel("One",
fluidPage(
fluidRow(uiOutput("uo_page_one_selector")),
fluidRow("Page one"))),
tabPanel("Two",
fluidPage(
fluidRow(uiOutput("uo_page_two_selector")),
fluidRow("Page two")))
)
)
# Run the application
shinyApp(ui, server)
先谢谢了!
【问题讨论】: