所以我试图做一个闪亮的应用程序,我有一个按钮,只有当文件已上传才显示;为即时通讯使用conditionalPanel。使条件面板依赖于与fileInput上传的文件
ui.R:
require(shiny)
shinyUI(pageWithSidebar(
headerPanel("My App"),
sidebarPanel(
fileInput("files", "Choose file"),
conditionalPanel(
condition = "input.files",
actionButton("submitFiles", "Submit files for processing"))),
mainPanel(h3("Nothing to see here"))
))
我不认为有什么在我的server.R关心,因为上面的例子并不做什么。在上述条件下,按钮从不出现,即条件从未如此。
有些事情我已经试过了我的情况是input.files.length > 0
,input.files.size() > 0
,这两者导致该按钮是目前之前我上传的文件。我猜这是因为在选择文件之前,输入$ files是一个空的data.frame,因此具有非零长度/大小,是吗?
我可以用什么条件来隐藏按钮,直到至少有一个文件完成上传?
我认为另一个选择是用uiOutput
取代conditionalPanel
,并调用在renderUI({actionButton(...)})
一个server.R观察/分离块,正在观看input.files(if (nrow(input$files) < 1) return()
)的内部;这是唯一的方法吗?如果我可以做到这一点,那么我会选择其中一种(超出conditionalPanel
,导致代码减少)?
啊哈,我甚至不知道'outputOptions()'存在!这是一个棘手的方法来'隐藏'你的'输出'列表中的东西,但它的作品。 – ClaytonJY
看来有些东西已经改变了,现在必须做''output.fileUploaded == true“'。 –