簡體   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