나는 checkboxGroupInput을 가지고 있지만 checkboxInput 동작을 원합니다. 독립적 인 반응 기능을 원합니다.이 기능은 사용자가 a
또는 b
을 입력했을 때만 활성화됩니다. 이것은 checkboxInput
을 별도로 사용하면 쉽게 가능하지만 checkboxGroupInput
에는 포함되지 않습니다. 나는 위의 예에서 재판을 무엇checkboxGroupInput with checkboxInput 동작
ui <- shinyUI(pageWithSidebar(
headerPanel("checkboxGroupInput"),
sidebarPanel(
checkboxGroupInput('sources',
label='Sources',
choices=list('a'='a',
'b'='b')),
checkboxInput('a',
'a'),
checkboxInput('b',
'b')
),
mainPanel(
# empty
)
))
server <- shinyServer(function(input, output) {
thingy <- reactive({
return('a' %in% input$sources)
})
observeEvent(thingy(), {
print("I'm here (a+b)")
})
observeEvent(input$a, {
print("I'm here (a only)")
})
observeEvent(input$b, {
print("I'm here (b only)")
})
})
shinyApp(ui=ui,server=server)
a
가 checkboxGroupInput
에 있는지 여부를 불리언을 저장합니다. 값이 TRUE
(즉, b
을 반복하여 클릭 함) 인 경우에도 thingy()
이 계속 활성화됩니다.
'observeEvent'의 첫 번째 인수는 부울 값과 상관없이 응답해야하는 이벤트 일 것입니다. 따라서 입력 소스가 변경 될 때마다 트리거됩니다. 'obsery'에서'thingy'의 값을 검사하기 위해'if'를 추가 할 수 있습니다. – NicE
@NicE 문제는'observeEvent'에 여러개의 반응성 소스가 들어오고'checkboxGroupInput'의 각 값이 그 자신의 함수가 필요할 것이므로 여러 if로 이어질 것입니다. 이 작업이 번거롭고 ('오래된'설정을 저장하고, 비교하고, '새로운'설정을 저장해야하는) 느낌이 들며 쉽게 얻을 수 있습니다. 의도 한 솔루션 (각 입력에 대해'thingy() '생성)을 사용하면 반응 함수에 의존 할 수 있습니다. – Mathias711