【发布时间】:2015-06-21 11:50:00
【问题描述】:
我正在使用目录中的文件名使用 updateSelectInput 填充 selectInput。用户使用 radioButtons 输入选择要填充的目录。一切正常,但是当第一次加载应用程序或更改目录时,selectInput 反应式传递默认值或旧目录中最后选择的文件(分别用于启动和目录更改)。这会导致数据文件加载失败,直到 selectInput 更新。
如何让我的文件加载响应式等待直到 selectInput 更新?
这是相关代码...
ui.R:
radioButtons("system", label = h3("System"),
choices = list("USAMS" = usamspath, "CFAMS" = cfamspath),
selected = usamspath),
selectInput("wheelSelect",
label = h3("Wheel"),
c("label 1" = "option1")),
服务器.R:
observe({
#Get and order wheelnames
details <- file.info(list.files(path = input$system,
pattern = "*AMS*.*", full.names=TRUE))
details <- details[with(details, order(as.POSIXct(mtime))), ]
wheels <- basename(rownames(details))
# Change values for input$wheelSelect
updateSelectInput(session, "wheelSelect",
choices = wheels,
selected = tail(wheels, n = 1))
})
wheelData <- reactive({
#Code to reload wheel when file changes
wheelFile <- reactiveFileReader(1000, session,
paste(input$system, input$wheelSelect, sep = "/"),
read.delim, skip = 4, comment.char = "=")
z <- wheelFile()
mungeCFWheel(z)
})
问题是 input$wheelSelect 在被前面的 observe() 中的 updateSelectInput 更新之前被 wheelData 响应式读取。
【问题讨论】: