R闪亮:如何在闪亮模块中使用removeUI来隐藏操作按钮

2024-04-12

我想在单击操作按钮并且输入不为空时隐藏操作按钮。

类似问题已被问过here https://stackoverflow.com/questions/75749132/shiny-how-to-hide-action-button-once-it-is-clicked-and-the-input-is-not-empty,并且提供的解决方案效果很好。

但是,我不知道如何让它在闪亮的模块中工作。

这是我的示例代码:

# module UI
choice_ui <- function(id) {
  ns <- NS(id)
  tagList(
    textInput(inputId = ns("myInput"), label = "write something"),
    actionButton(inputId = ns("click"), label = "click me"),
    verbatimTextOutput(outputId = ns("text"))
    )
  }

# module server
choice_server <- function(id) {
  moduleServer(id, function(input, output, session){
    observeEvent(input$click, {
      x <- input$myInput
      output$text <- renderPrint({x})
      req(x)
      removeUI(selector = paste0("#click", id), session = session)
      })
    })
  }

# Application
library(shiny)
app_ui <- function() {
  fluidPage(
    choice_ui("choice_ui_1")
  )
}

app_server <- function(input, output, session) {
  choice_server("choice_ui_1")
}

shinyApp(app_ui, app_server)

在模块服务器上,获取会话命名空间:

ns <- session$ns

使用它在removeUI()如下:

removeUI(selector = paste0("#", ns("click")), session = session)

这是一个完整的表示:

# module UI
choice_ui <- function(id) {
  ns <- NS(id)
  tagList(
    textInput(inputId = ns("myInput"), label = "write something"),
    actionButton(inputId = ns("click"), label = "click me"),
    verbatimTextOutput(outputId = ns("text"))
  )
}

# module server
choice_server <- function(id) {
  moduleServer(id, function(input, output, session) {
    ns <- session$ns
    observeEvent(input$click, {
      x <- input$myInput
      output$text <- renderPrint({
        x
      })
      req(x)
      removeUI(selector = paste0("#", ns("click")), session = session)
    })
  })
}

# Application
library(shiny)
app_ui <- function() {
  fluidPage(
    choice_ui("choice_ui_1")
  )
}

app_server <- function(input, output, session) {
  choice_server("choice_ui_1")
}

shinyApp(app_ui, app_server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R闪亮:如何在闪亮模块中使用removeUI来隐藏操作按钮 的相关文章

随机推荐