我有以下R Shiny代码:
economics_points <- eventReactive(input$sigmaThresholdSlider, {
print("input$sigmaThresholdSlider fired.")
get_points(input$daterange, 1, input$sigmaThresholdSlider)
}, ignoreNULL = FALSE)
economics_points <- eventReactive(input$daterange, {
print("input$daterange fired.")
get_points(input$daterange, 1, input$sigmaThresholdSlider)
}, ignoreNULL = FALSE)
问题是economics_points
仅在更改daterange
控件时更新,而不是在sigmaThresholdSlider
控件更改时更新。如果我颠倒了两个语句的顺序,economics_points
仅在移动sigmaThresholdSlider
时更新。换句话说,第二个语句会覆盖第一个语句。
如何更改此代码,以便在调整 控件时运行该代码?
documentation表示eventExpr
的{{1}}参数可以是“甚至是大括号内的复杂表达式”,但没有给出有用的示例。
答案 0 :(得分:3)
通过提供一个列表似乎可行:
library(shiny)
shinyServer(function(input, output) {
view <- eventReactive(list(input$t1, input$t2),{
t1 <- input$t1
t2 <- input$t2
rnorm(1)
})
output$view <- renderPrint(view())
})
library(shiny)
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
actionButton("t1", "t1"),
actionButton("t2", "t2")
),
mainPanel(
verbatimTextOutput("view")
)
)
))
答案 1 :(得分:2)
我认为您不需要eventReactive
- 您可以使用reactive
,它会响应任何值的变化。
economics_points <- reactive(get_points(input$daterange, 1, input$sigmaThresholdSlider))
编辑:不确定如何处理ignoreNULL = FALSE
位,但似乎不是reactive
的选项。