Как прослушать более одной кнопки actionbutton в блестящем observeEvent для перезагрузки shiny

#r #session #shiny #reload #action-button

#r #сеанс #блестящий #перезагрузить #кнопка действия

Вопрос:

Вот вопрос, у меня есть две динамически отображаемые кнопки действий, которые предназначены для перезагрузки сеанса, но у меня возникают проблемы с их прослушиванием, это похоже на действие OR, каждое из них нажимается, а затем сеанс перезагружается. Вот код:

 ui <- shinyUI(bootstrapPage(
  p('cbldwbvkdj'),
  uiOutput('aa')
  )
)

server <- shinyServer(function(input, output, session) {
  output$aa<-renderUI({
    actionButton("test1", "test1")
    actionButton("test2", "test2")
  })
  observeEvent(paste0(input$test1, input$test2), {
    session$reload()
  }, ignoreInit = T)
})

shinyApp(ui, server)
  

Ответ №1:

Вы можете добавить req к observeEvent :

 library(shiny)
ui <- shinyUI(
    bootstrapPage(
        p('cbldwbvkdj'),
        uiOutput('aa')
    )
)

server <- shinyServer(function(input, output, session) {
    
    output$aa <- renderUI({
        tagList(
            actionButton("test1", "test1"),
            actionButton("test2", "test2")
        )
    })
    
    observeEvent(list(input$test1, input$test2),{
        req(input$test1!=0 | input$test2 !=0)
        session$reload()
    }, ignoreInit = TRUE,ignoreNULL = TRUE)
})

shinyApp(ui, server)