如何在单击时删除Shiny actionButton

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在单击时删除Shiny actionButton相关的知识,希望对你有一定的参考价值。

我想在点击后删除一个actionButton。我以前成功使用过shinyjs::hide("init"),但现在我想完全删除按钮。我试过以下代码

这个问题源于模块化。它基于唯一ID GlobClass$Init更新矢量userPID。代码版本的非模块化工作。

Example.R

library(shiny)

### Modularized Code
#' UserSide Function to Create Button
InitializeUI <- compiler::cmpfun( function(id) {
    ns <- NS(id)    
    actionButton( ns("init"), h4("Initialize") )
})         
#' ServerSide Function to Update reactive Vector and Delete Button
Initialize <- compiler::cmpfun( function(input, output, session,
    GlobClass, userPID ) {

    observeEvent( input$init, {
        cat("click
")
        removeUI(selector='#init', immediate=TRUE)
        GlobClass$Init[userPID] <- TRUE
    }, autoDestroy=TRUE)
})

### User.R
ui <- fluidPage( InitializeUI("init") )

### Server.R
GlobClass <- reactiveValues(Init=c(FALSE, FALSE))

server <- function(input,output) {
    userPID <-  sample( 1:2,1)
    cat(userPID, "
")
    callModule( Initialize, "init", GlobClass, userPID )        
}

### Run Application
shinyApp(ui, server)
答案

以下似乎对我来说很好。实施方面有什么不同吗?

library(shiny)

ui <- fluidPage(
  actionButton('init','Click')
)

# The server function
server <- function(input,output) 
{
  observeEvent(input$init, {
    removeUI(selector='#init', immediate=TRUE)
  }, autoDestroy=TRUE)

}

shinyApp(ui, server)

以上是关于如何在单击时删除Shiny actionButton的主要内容,如果未能解决你的问题,请参考以下文章

R Shiny - 使用jQuery和onclick事件处理程序删除UI

在 Shiny 应用程序中,如何暂停 for 循环以获取用户输入,然后在单击按钮后继续?

如何在删除最后一个跟踪时添加新跟踪?

在 R Shiny App 中,如何在首次调用 App 时呈现默认表格?

如何访问/打印/跟踪 Shiny 应用程序中的当前选项卡选择?

导航栏按钮在 Shiny 中单击时不起作用