我有以下闪亮的应用程序
server <- function(input, output, session) {
rv <- reactiveValues(i = 0)
output$myplot <- renderPlotly({
dt = data.frame(x = 1:10, y = rep(rv$i,10))
plot_ly(dt, x = ~x, y =~y, mode = "markers", type = 'scatter') %>%
layout(yaxis = list(range = c(0,10)))
})
observeEvent(input$run,{
rv$i <- input$valstart
})
observe({
isolate({rv$i = rv$i + 1})
if (rv$i < 10){invalidateLater(1000, session)}
})
}
ui <- fluidPage(
sliderInput('valstart','Start Value', min = 1, max =3, value= 3),
actionButton("run", "START"),
plotlyOutput("myplot")
)
shinyApp(ui = ui, server = server)
但是,我将在启动应用程序时一开始的rv值取决于参数(此处是我的滑块输入)。我想要这样的东西:
rv <- reactiveValues(i = input$valstart)
但这给我以下错误:
.getReactiveEnvironment()$ currentContext()中的错误:操作不正确
允许没有 Activity 的反应上下文。 (您尝试做某事
只能从反应式表达式或观察器内部完成)。
看来我无法在反应性值中插入反应性值...任何解决方案?
最佳答案
应用程序启动时是否不会触发watchEvent?
怎么样:
rv <- reactiveValues(i = 0)
observeEvent(input$valstart,{
rv$i <- input$valstart
})
关于r - 在ReactiveValues中插入响应式(Reactive)值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54876498/