刷新或使renderUI反应

时间:2015-05-07 20:39:06

标签: shiny

我使用observe从模拟创建png文件,然后使用renderUI作为滑块动画显示png文件。现在这样做了各种样本大小,png文件名包括样本大小 - 例如RplotSS2step1.png ... RplotSS2step20.png,样本大小为2.所有工作正常,第一次选择样本大小但稍后重新选择相同的样本大小时,会创建新的png文件(不同的模拟)但是旧的png文件(图像目录中不再存在)只是重新显示。

有没有办法让renderUI到" reimage"重复使用相同的文件名时。如果我在文件名中添加一个随机标签以使它们始终具有唯一性,我将不得不自动删除它们,这似乎有风险。

Nimgurl <- reactive({
  i=input$Nmyslider
  samplesize=input$num
  return(paste0("./images/RplotSS",samplesize,"step",i,".png"))
 })
output$Nui <- renderUI({
  tags$div(
     tags$img(src = Nimgurl())
   )
 })

1 个答案:

答案 0 :(得分:0)

我不知道这是否是最佳解决方案。我用renderImage和使用dinamic替代文字解决了。

 output$image<-   renderImage({

                            # Return a list containing the filename
                                    list(src = Nimgurl(),
                                     contentType = 'image/png',
                                     alt = ndg())
                                  }, deleteFile = T)    

其中ndg()必须是反应性输入(如您所说,它可能是随机数)。

然后在ui.r中你可以使用:

div(imageOutput("roi"))