2つの異なるイベントでオブザーバーをトリガーしたいと思います。 ここ これが機能するはずであることが提案されました。しかし、それは2番目のイベントにのみ依存しているようです。
observeEvent({
input$spec_button
mainplot.click$click
}, { ... } )
例を見てください。
ui <- shinyUI(bootstrapPage(
actionButton("test1", "test1"),
actionButton("test2", "test2"))
)
server <- shinyServer(function(input, output) {
observeEvent({
input$test1
input$test2
}, {
print('Hello World')
})
})
shinyApp(ui, server)
ボタンtest1をクリックすると、何も起こりません。ボタンtest2をクリックすると、コンソールに出力されます。 test2ボタンが押されたら、test1をクリックするとメッセージが出力されます。それは奇妙な振る舞いです。
that リンクの別の提案は使用することでした
list(input$test1, input$test2)
ボタンをクリックしなくてもメッセージを印刷します。
これでうまくいくはずです。@ MrFlickが述べたように、ボタンがクリックされたかどうかを確認する必要があることに注意してください。
#rm(list = ls())
library(shiny)
ui <- shinyUI(bootstrapPage(
actionButton("test1", "test1"),
actionButton("test2", "test2"))
)
server <- shinyServer(function(input, output) {
toListen <- reactive({
list(input$test1,input$test2)
})
observeEvent(toListen(), {
if(input$test1==0 && input$test2==0){
return()
}
print('Hello World')
})
})
shinyApp(ui, server)
#rm(list = ls())
library(shiny)
ui <- shinyUI(bootstrapPage(
actionButton("test1", "test1"),
actionButton("test2", "test2"))
)
server <- shinyServer(function(input, output) {
observeEvent(input$test1 | input$test2, {
if(input$test1==0 && input$test2==0){
return()
}
print('Hello World')
})
})
shinyApp(ui, server)