繁体   English   中英

如何将相同的输入添加到 Shinydashboard 中的两个 tabItems 中?

[英]How to add the same inputs into two tabItems in shinydashboard?

我正在使用 Shinydashboard 来创建我的闪亮应用程序的界面。 但是我想要一个出现在两个 tabMenu 中的输入。 在下面的示例中,我希望textInput i_test出现在菜单menu1menu2

我应该如何实施它? 感谢您的任何建议。

library(shiny)
library(shinydashboard)

# Side bar boardy
sidebar <- dashboardSidebar(
    sidebarMenu(
        id = 'menu_tabs'
        , menuItem('menu1', tabName = 'menu1')
        , menuItem('menu2', tabName = 'menu2')
        , menuItem('menu3', tabName = 'menu3')
    )
)

# Body board
body <- dashboardBody(
    tabItems(
        tabItem(
            tabName = 'menu1',
            textInput('i_test', 'Test')
        ),
        tabItem(
            tabName = 'menu2'
        )
    )
)

# Shiny UI
ui <- dashboardPage(
    title = 'test',
    dashboardHeader(),
    sidebar,
    body
)

server <- function(input, output, session) {
}

shinyApp(ui, server)

即使您尝试第二次构建相同的元素,shiny 似乎总是呈现两个不同的元素。

这就是为什么我只能想出一个解决方案,它只会让它看起来两个文本输入是相同的。

检查代码:

library(shiny)
library(shinydashboard)

# Side bar boardy
sidebar <- dashboardSidebar(
  sidebarMenu(
    id = 'menu_tabs'
    , menuItem('menu1', tabName = 'menu1')
    , menuItem('menu2', tabName = 'menu2')
    , menuItem('menu3', tabName = 'menu3')
  )
)

# Body board
body <- dashboardBody(
  tabItems(
    tabItem(
      tabName = 'menu1',
      textInput('i_test_1', 'Test')
    ),
    tabItem(
      tabName = 'menu2',
      textInput('i_test_2', 'Test')
    ),
    tabItem(
      tabName = 'menu3'
    )
  )
)

# Shiny UI
ui <- dashboardPage(
  title = 'test',
  dashboardHeader(),
  sidebar,
  body
)

server <- function(input, output, session) {

  observe({
    text1 <- input$i_test_1        
    updateTextInput(session, 'i_test_2', value = text1)
  })
  observe({
    text2 <- input$i_test_2        
    updateTextInput(session, 'i_test_1', value = text2)
  })

}

shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM