input_holder <- reactiveValues(
a = 7
)
observeEvent(input$a_button, {
# does some computation that arrives at some_number
input_holder$a <- some_number
})
observeEvent(input$slider_name, {
# should do something only if not caused by input$a_button
})
output$some_output <- renderUI({
sliderInput('slider_name', 'some_label', max=10, min=1, value=input_holder$a)
})
上面是我的代码模型。
这就是我认为如果按下a_button会发生的事件顺序。
观察a_button的watchEvent将被触发并将input_holder $ a设置为some_number。
这将导致使用此新值呈现slider_name。
但这不是我想要的行为。如果用户更改了lider_name,并且不作为其他事件的副作用,我只希望侦听slider_name的observeEvent执行其代码块。
答案 0 :(得分:1)
我认为您正在寻找updateSliderInput
,它将在不重新渲染的情况下更新滑块:
observeEvent(input$a_button, {
# does some computation that arrives at some_number
# input_holder$a <- some_number # do you need to store the value? If you do, I think you should use eventReactive
updateSliderInput(session, "slider_name", value = some_number)
})