我正在try 观察在模块中呈现在uiOutput中的输入.

我try 了以下reprex代码:

my_modUI <- function(id) {
  ns <- NS(id)
  tagList(
  uiOutput(ns("ui1")),
  verbatimTextOutput(ns("text1"))
  )
}

my_modServer <- function(id) {
  moduleServer(
    id,
    function(input, output, session) {
      output$ui1 <- renderUI({
        actionButton("btn", "Click me!")
      })
      
      observeEvent(input$btn, handlerExpr = {
        output$text1 <- renderPrint(paste0("Button is clicked"))
      })
    }
  )
}

library(shiny)

ui <- fluidPage(
  my_modUI("my_mod")
)

server <- function(input, output, session) {
  my_modServer("my_mod")
}

shinyApp(ui, server)

但并没有奏效.我期待看到的是this

你能帮我解决这个使用shiny 模块的问题吗?

推荐答案

因为您在一个模块中,所以需要将按钮id包装在ns()中,您可以使用session$ns.参见关于在https://shiny.posit.co/r/articles/improve/modules/的模块中使用renderUI的部分:

my_modUI <- function(id) {
  ns <- NS(id)
  tagList(
    uiOutput(ns("ui1")),
    verbatimTextOutput(ns("text1"))
  )
}

my_modServer <- function(id) {
  moduleServer(
    id,
    function(input, output, session) {
      output$ui1 <- renderUI({
        ns <- session$ns
        
        actionButton(ns("btn"), "Click me!")
      })

      observeEvent(input$btn, handlerExpr = {
        output$text1 <- renderPrint(paste0("Button is clicked"))
      })
    }
  )
}

library(shiny)

ui <- fluidPage(
  my_modUI("my_mod")
)

server <- function(input, output, session) {
  my_modServer("my_mod")
}

shinyApp(ui, server)

enter image description here

R相关问答推荐

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

如何使用geom_sf在边界显示两种 colored颜色 ?

如果索引重复,聚合xts核心数据

当两个图层映射到相同的美学时,隐藏一个图层的图例值

在数学中正确显示摄氏度、开氏度或华氏度

将饼图插入条形图

如何在分组条形图中移动相关列?

如何提取所有完美匹配的10个核苷酸在一个成对的匹配与生物字符串在R?>

DEN扩展包中的RECT树形图出现异常行为

使用范围和单个数字将数字与字符串进行比较

如何在R中平滑地绘制线图(不拟合)?

从非重叠(非滚动)周期中的最新数据向后开窗并在周期内计数

正则表达式在第二个管道和第二个T之后拆分R中的列

在纵向数据集中创建新行

为什么在写入CSV文件时Purrr::Pwalk不起作用

使用列中的值来调用函数调用中应使用的其他列

如何从嵌套数据中自动创建命名对象?在R中

根据用户输入更改标记大小和 colored颜色 (R)

Package emMeans:如果emmip模型中包含的变量较少,emMeans模型中的其他变量设置为什么?

如何根据每个子框架中分类因子的唯一计数来过滤子框架列表?