如何在 Shiny 服务器中粘贴 500 条代码

How to paste 500 chunck of code in Shiny server

提问人:JohnBones JohnBones 提问时间:11/17/2023 更新时间:11/17/2023 访问量:36

问:

我需要传递此代码

         observeEvent(input[[all_images_ID[1]]], {
           showModal(modal_dialog_function(1))

         }, ignoreInit = TRUE)

在闪亮的服务器中 500 次。

我已经尝试使用,,但它不起作用。mapwalkfor loops

有什么想法吗?我正在尝试创建一个文件并创建此代码 500 次,仅更改字符中的值,然后传入闪亮作为源。

但它不起作用......

有什么帮助吗?

r 闪亮

评论


答:

4赞 Limey 11/17/2023 #1

不要粘贴。使用模块和系列函数。这是一个最小的演示,它也应该帮助你解决你的另一个问题......apply

library(shiny)

buttonUI <- function(id) {
  ns <- NS(id)

  actionButton(ns("button"), "Click me!")
}

buttonServer <- function(id) {
  moduleServer(
    id,
    function(input, output, session) {
      observeEvent(input$button, {
        showModal(
          modalDialog(
            paste0("I am button ", id),
            title = "You clicked me!"
          )
        )
      })
    }
  )
}

ui <- fluidPage(
  tagList(lapply(1:500, buttonUI))
)

server <- function(input, output, session) {
  for (i in 1:500) {
    buttonServer(i)
  }
}

shinyApp(ui = ui, server = server)

评论

0赞 JohnBones JohnBones 11/21/2023
谢谢。有必要使用功能吗?tagList