我尝试根据多个图表中的点击事件更新文本框。我使用observeEvent
函数来触发文本框的更新。代码片段如下所示。
observeEvent({
input$plot1_click
input$plot2_click
input$plot3_click
...
}, {
# only need the invalidated input
invalid_input <- which.invalid(input$plot1_click,
input$plot2_click,
input$plot3_click,
...)
updateTextInput(session,
"textbox",
label = NULL,
value = invalid_input)
})
目前,updateTextInput
函数只要在任何一个图中点击就会运行,这是理想的,但是我无法弄清楚如何捕获最后点击的图,应该是用于更新文本输入。是否有一个函数来检查哪个输入从输入列表中失效?
答案 0 :(得分:0)
嗨,我认为最简单的方法是为每个输入创建一个单独的观察者。这样,最后更改的输入将始终最后处理。如果您不想使用重复代码使代码膨胀,可以将其放入lapply中。它可能看起来像这样
lapply(1:3, function(idx){
observeEvent({input[[paste0("plot",idx,"_click")]]},
{updateTextInput(session,
"textbox",
label = NULL,
value = input[[paste0("plot",idx,"_click")]])})
})
希望这有帮助!