我了解反应值会根据此处的描述通知依赖于该值的任何反应函数
基于此,我想利用这个属性并创建一个 for 循环,为我的反应值对象分配不同的值,反过来我期望另一个反应函数重新执行自身,因为反应值在 for 循环内发生变化. 下面是我正在尝试做的一个简化示例:
这是ui.R
library(shiny)
# Define UI
shinyUI(pageWithSidebar(
titlePanel("" ,"For loop with reactive values"),
# Application title
headerPanel(h5(textOutput("Dummy Example"))),
sidebarLayout(
#Sidebar
sidebarPanel(
textInput("URLtext", "Enter csv of urls", value = "", width = NULL, placeholder = "Input csv here"),
br()
),
# Main Panel
mainPanel(
h3(textOutput("caption"))
)
)
))
这是服务器文件:
library(shiny)
shinyServer(function(input, output) {
values = reactiveValues(a = character())
reactive({
url_df = read.table(input$URLtext)
for (i in 1:5){
values$a = as.character(url_df[i,1])
Sys.sleep(1)
}
})
output$caption <- renderText(values$a)
})
这没有给出预期的结果。实际上,当我检查它的内容时,values$a
它是空的。请帮忙!