2014-02-20 2 views
4

Мне нужно несколько вкладок в моем интерфейсе, и в каждом из них я хотел бы использовать условный блок. Как вы увидите здесь с воспроизводимым кодом, условная панель работает на первой вкладке, но не на других вкладках.R Shiny: conditionalPanel не работает, если используется в разных вкладках

ui <- pageWithSidebar(
headerPanel("Hello !"), 
sidebarPanel(
tabsetPanel(
tabPanel("a", 
textInput(inputId = "A1", label = "1:", value = "A1"),    
checkboxInput(inputId = "new_A2", 
label = "Add another one", 
value = FALSE), 

conditionalPanel(
condition = "input.new_A2 == true", 
textInput(inputId = "A2", label = "2:", value = "A2") 
)), 
tabPanel("b", 
textInput(inputId = "B1", label = "1:", value = "C1"), 
checkboxInput(inputId = "new_B2", 
label = "Add another one", 
value = FALSE), 

conditionalPanel(
condition = "input.new_B2 == true", 

textInput(inputId = "B2", label = "2:", value = "C2")  
) 
) 
) 
), 

mainPanel() 
) 

server <- function(input,output){ 
} 

runApp(list(ui=ui,server=server)) 

Я знаю, что есть много вопросов, связанных с conditionalPanel, но я не нашел ответ на этот же.

Спасибо заранее, любое предложение высоко оценило

ответ

6

Дайте tabset панели идентификатор, например tabsetPanel(id="tabs" и добавить условие, когда вкладка «б» сфокусирован input.tabs == 'b'

Например, в вашей 2-е условной панели условие будет:

condition = "input.tabs == 'b' & input.new_B2 == true"

+0

Большое спасибо Julien! Он работает в этом случае. – user1431694

+0

Он не работает для блестящей версии 0.12.2.9007. как проверить элементы, относящиеся к вводу? такие как вкладки $ tabs в блестящем состоянии? Спасибо. –

+0

Кажется, в новой версии. 'input.tabs == 'b' &' следует удалить, что означает, что оригинал работает. –

Смежные вопросы