为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一个闪亮事件中监听多个事件表达式

/ 猿问

如何在一个闪亮事件中监听多个事件表达式

回首忆惘然 2019-11-30 14:20:03

我想要两个不同的事件来触发我的应用程序中各种绘图/输出所使用的数据的更新。一个是被单击的按钮(input$spec_button),另一个是被单击的点上的点(mainplot.click$click)。


基本上,我想同时列出两者,但是我不确定如何编写代码。这是我现在所拥有的:


在server.R中:


data <- eventReactive({mainplot.click$click | input$spec_button}, {

    if(input$spec_button){

      # get data relevant to the button

    } else {

      # get data relevant to the point clicked

    }

  })

但是if-else子句不起作用


Error in mainplot.click$click | input$spec_button : 

  operations are possible only for numeric, logical or complex types


->我可以为mainplot.click$click | input$spec_button子句使用某种动作组合功能吗?


查看完整描述

3 回答

?
慕的地2183247

我知道这很老,但是我有同样的问题。我终于弄明白了。您在括号中包含一个表达式,然后简单地列出事件/反应对象。我(未经证实的)猜测是,shiny只是对该表达式块执行与标准reactive块相同的反应性指针分析。


observeEvent({ 

  input$spec_button

  mainplot.click$click

  1

}, { ... } )

编辑


更新以处理表达式中最后一行返回NULL的情况。只需返回一个常数即可。


查看完整回答
反对 2019-11-30
?
桃花长相依

也:


observeEvent(c( 

  input$spec_button,

  mainplot.click$click

), { ... } )


查看完整回答
反对 2019-11-30
?
交互式爱情

我已经通过创建反应式对象并将其用于事件更改表达式中来解决了此问题。如下:


xxchange <- reactive({

paste(input$filter , input$term)

})


output$mypotput <- eventReactive( xxchange(), {

...

...

...

} )


查看完整回答
反对 2019-11-30
  • 3 回答
  • 0 关注
  • 174 浏览

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信