我有一个简单的闪亮应用程序:
阅读zip文件。选择一些所需文件并根据读取文件的数量调整输入面板:
CIL
最后,在我的CTS
函数中,如何设置参数ui <- fluidPage(
fileInput("File", "Input checkbox"),
selectInput("inSelect", "Select input",c())
leafletOutput("mymap")
)
server <- function(input, output, session) {
cor<- reactive({
x=input$File
if (is.null(x))
return(NULL)
report_list <- c("Park result.txt",
"Park result minus",
"Park result plus")
temp_files <- unzip(x$datapath)
temp_files <- temp_files[grepl(paste(report_list, collapse = "|"), temp_files)]
T=length(temp_files)
A_new=c();for(i in 1:(T/3)){A_new[[i]]=c()}
for(i in 1:(T/3)){A_new[[i]]=....}
result <- list(T=T,A_new=A_new);
return(result);
})
observeEvent(cor(),{
updateSelectInput(session, "Select1",
label = paste(((cor()$T)/3),"different layout"),
choices = paste0("Layout",c(1:((cor()$T)/3))))
})
output$mymap <- renderLeaflet({
infile=input$File
if (is.null(infile))
return(NULL)
a2=cor()
leaflet() %>%
addProviderTiles("OpenTopoMap", group = "MapQuestOpen.Aerial") %>%
addMarkers(data =a2$A_new[[1]],~long, ~lat, popup = ~as.character(mag), label = ~as.character(Name))%>%
addMeasure()
})
}
shinyApp(ui, server)
,如果用户选择output$mymap
,则绘图显示与{{{}相关的地图1}},如果A_new
,则地图应为layout1
以显示?!
答案 0 :(得分:2)
您还可以使用代码少的observeEvent
observeEvent(cor(),{
updateSelectInput(session, "inSelect",label = paste(cor()$t1,"different layout"),choices = paste0("Layout",c(1:cor()$t1)))
})
答案 1 :(得分:1)
您的被动内容中定义的任何内容都无法从被动方面外部访问。所以在反应中,你做
x=input$File
所以x是在被动反应中定义的,但不是在被动反应之外!所以在你的观察者中:
observe({
if (is.null(x))
return(NULL)
...
不起作用,因为x不存在。我猜你想做的是:
observe({
if (is.null(cor()))
return(NULL)
...
检查被动是否为NULL。希望这有帮助!