r - 单击按钮后如何将多个图像插入闪亮?
问题描述
我创建了一个闪亮的应用程序,它有两个按钮,如以下屏幕截图所示。单击“显示图像”按钮后,我想在闪亮的应用程序中显示此文件夹中的8 张图像。我尝试使用 renderImages 但无法让它工作。
这是我到目前为止的代码:
ui.R
fluidPage(
# Application title
titlePanel("For Fun!!"),
hr(),
sidebarLayout(
# Sidebar with a slider and selection inputs
sidebarPanel(
actionButton("update", "Print Text"),
hr(),
actionButton("test", "Show Images")
),
mainPanel(
verbatimTextOutput("plot"),
uiOutput("images")
)
)
)
server.r
server <- function(input, output) {
randomVals <- eventReactive(input$update, {
myString="Hello!"
myString
})
output$plot <- renderPrint({
myString=randomVals()
print(myString)
})
}
这就是我正在寻找的输出:感谢您的时间
解决方案
像这样试试。
library(shiny)
server <- shinyServer(function(input, output) {
output$files <- renderTable(input$files)
files <- reactive({
files <- input$files
files$datapath <- gsub("\\\\", "/", files$datapath)
files
})
output$images <- renderUI({
if(is.null(input$files)) return(NULL)
image_output_list <-
lapply(1:nrow(files()),
function(i)
{
imagename = paste0("image", i)
imageOutput(imagename)
})
do.call(tagList, image_output_list)
})
observe({
if(is.null(input$files)) return(NULL)
for (i in 1:nrow(files()))
{
print(i)
local({
my_i <- i
imagename = paste0("image", my_i)
print(imagename)
output[[imagename]] <-
renderImage({
list(src = files()$datapath[my_i],
alt = "Image failed to render")
}, deleteFile = FALSE)
})
}
})
})
ui <- shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput(inputId = 'files',
label = 'Select an Image',
multiple = TRUE,
accept=c('image/png', 'image/jpeg'))
),
mainPanel(
tableOutput('files'),
uiOutput('images')
)
)
))
shinyApp(ui=ui,server=server)
推荐阅读
- javascript - React hook form : OnSubmit 给我重置的值(注册无效)
- javascript - 如何使用 map() 将对象转换为数组?
- java - 可以在不编译 jar 文件中的 spring boot 应用程序的情况下使用“jmx exporter”吗?
- shell - 模拟轻量级 cpu 加载 shell 脚本
- r - 物种丰富度的 GLM
- jquery - .Net Core Jquery Validation 显示错误消息
- c# - 当方法在基类中定义时,如何将方法的参数限制为子类类型?
- r - 在 ggplot 中,如何创建带有尖边的线条可视化(如“牙签”)?
- git - git:如何添加合并一个人的分叉提交?
- python - JSON到python中的index.html?