私は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