actionButton 在 Shiny 中不起作用

actionButton is not working in Shiny

我在我闪亮的应用程序中设置了 2 个操作按钮,用于将用户输入插入数据库并从数据库中删除一条记录。

mainPanel(
                            tabsetPanel(type = "tabs", 
                                    tabPanel("Phase1",
                                            column(4,uiOutput("Phase1", inline = FALSE),
                                                    wellPanel(
                                                            actionButton("P1_Add", "Add",icon=icon("plus-circle")),
                                                            actionButton("P1_Del", "Del",icon=icon("minus-circle"))
                                                                )),
                                            column(6,h1("Phase1 Input data is put here"),dataTableOutput("Phase1_Data"))

                                            ), 
                                    tabPanel("Phase2",uiOutput("Phase2",inline=FALSE)), 
                                    tabPanel("Phase3")
                            )
                    )

而且我还在 server.R 中定义了一个观察来响应我的点击。但似乎不起作用

            obs_p1_add<-observe({

                    if(input$P1_Add)
                    {
                        cat("just click add button")
                        cat("test")
                        print (input$P1_Add)
                        output$Phase2<-  renderUI({ 
                                list(h4("ha! change"))
                                })

                    }

                })

谁能教我哪里错了?非常感谢!

你的代码对我有用!

ui.R:

library(shiny)

shinyUI(fluidPage(
    mainPanel(
      tabsetPanel(type = "tabs", 
                  tabPanel("Phase1",
                           column(4,uiOutput("Phase1", inline = FALSE),
                                  wellPanel(
                                    actionButton("P1_Add", "Add",icon=icon("plus-circle")),
                                    actionButton("P1_Del", "Del",icon=icon("minus-circle"))
                                  )),
                           column(6,h1("Phase1 Input data is put here"),dataTableOutput("Phase1_Data"))

                  ), 
                  tabPanel("Phase2",uiOutput("Phase2",inline=FALSE)), 
                  tabPanel("Phase3")
      )
    )
))

server.R:

library(shiny)

shinyServer(function(input, output) {

  obs_p1_add<-observe({

    if(input$P1_Add)
    {
      cat("just click add button")
      cat("test")
      print (input$P1_Add)
      output$Phase2<-  renderUI({ 
        list(h4("ha! change"))
      })

    }

  })

})

单击后在第二个选项卡中呈现文本: