2016-04-01 29 views
2

navbar hattı içinde bir onay kutusu widget'ı oluşturmak mümkün mü? Bu benim aklımda olan bir example.checkbox eklendi

şu bir checkboxInput yaratır ama etkileşim düzgün çalışması için görünmüyor:

library(shiny) 

ui <- navbarPage(
    "App Title", 
    tabPanel("Plot"), 
    navbarMenu("More", 
    tabPanel("Summary"), 
    tabPanel("Table") 
), 
    tabPanel(checkboxInput("chk_1", "This is a label")), 
    hr(), 
    fluidRow(column(3, verbatimTextOutput("value"))) 
) 

server <- function(input, output, session) { 
output$value <- renderPrint({ input$chk_1 }) 
} 

shinyApp(ui, server) 

cevap

0

Bence bu tabPanel başlığı olarak onay kutusunu kullanan bu, hiç de çalışır şaşırdım ve şunları içerir hr() ve bir panelde değil, navbarPage öğesinde öğe olarak çıktı. Şaşırtıcı bir şekilde, belirli güncelleme sorununu yalnızca onay kutusu değerini güncelleyen reaktif bir gözlemci ekleyerek düzeltebilirsiniz.

observe({ 
    updateCheckboxInput(session, "chk_1", value=input$chk_1) 
}) 

Ben de onay kutusunun ile temsil panele bir value= "chk_1_panel" ya da bazı tür eklersiniz, böylece seçilmiş zaman rasyonel adı vardır: En server fonksiyonda, sadece eklemeniz gerekir.

Onay kutusunu işaretlediğinizde, farklı bir panele geçiş yapacağını unutmayın. Bu panel anahtarını vurgulamak için çıkışı bir panele taşımak için kodunuzu biraz değiştirdim. Bunun tam örneği şu şekilde olur:

library(shiny) 

ui <- navbarPage(
    "App Title", 
    tabPanel("Plot"), 
    navbarMenu("More", 
     tabPanel("Summary"), 
     tabPanel("Table") 
    ), 
    tabPanel(value= "chk_1_panel", 
     checkboxInput("chk_1", "This is a label"), 
     hr(), 
     fluidRow(column(3, verbatimTextOutput("value"))) 
    ) 
) 

server <- function(input, output, session) { 
    observe({ 
     updateCheckboxInput(session, "chk_1", value=input$chk_1) 
    }) 
    output$value <- renderPrint({ input$chk_1 }) 
} 

shinyApp(ui, server)