作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我试图制作一个 Shiny 的应用程序,其中有一个仅在文件上传后才会显示的按钮;为此我使用conditionalPanel。
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"))
))
input.files.length > 0
,
input.files.size() > 0
,这两者都会导致在我上传文件之前显示按钮。我猜这是因为在选择文件之前input $ files是一个空的data.frame,因此长度/大小为非零,对吗?
conditionalPanel
替换为
uiOutput
,并在正在监视input.files(
renderUI({actionButton(...)})
)的server.R中的watch / isolate块内调用
if (nrow(input$files) < 1) return()
;那是唯一的方法吗?如果我能以任何一种方式做到这一点,那又是什么使我选择其中一个(除了
conditionalPanel
之外,代码更少)?
最佳答案
您必须使用react式输出,以返回上载状态,并将此输出的选项suspendWhenHidden
设置为FALSE
。
更确切地说,在server.R中,您确实具有响应功能,例如getData()
,可以从上传的文件中创建数据帧。然后执行以下操作:
getData <- reactive({
if(is.null(input$files)) return(NULL)
......
})
output$fileUploaded <- reactive({
return(!is.null(getData()))
})
outputOptions(output, 'fileUploaded', suspendWhenHidden=FALSE)
conditionalPanel()
:
conditionalPanel("output.fileUploaded",
......
关于r - 使conditionalPanel依赖于使用fileInput上传的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686581/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!