Рассмотрим следующее приложение:
ui <- basicPage(
actionButton('button1', 'click one'),
actionButton('button2', 'click two')
)
server <- function(input, output){
popup <- function(){
modalDialog(easyClose = T,
'popup window triggered')
}
}
shinyApp(ui=ui, server=server)
Моя цель заключается в том, чтобы модальное окно запускалось при нажатии любой из кнопок.Я понимаю, что могу создать observeEvent
для каждой кнопки, но в полном приложении будет много кнопок на разных страницах navbar
.Поэтому, чтобы избежать дублирования кода, я бы хотел собрать их в один observeEvent
.Я попробовал некоторые из предложений здесь .
Добавление
observeEvent({
input$button1
input$button2
}, {
showModal(popup())
})
к server()
на самом деле не работает, потому что по какой-то странной причине button2
необходимощелкнуть до того, как button1
откликнется.
Вместо этого добавление
observeEvent(c(input$button1, input$button2), {
showModal(popup())
})
приведет к тому, что модальное окно уже появляется при запуске, что не должно происходить.
ИтакЕсть ли способ объединить несколько кнопок действий в одно событие наблюдения без этих нежелательных действий?