繁体   English   中英

R闪亮:gvistable无法调用所选行

[英]R Shiny: gvistable unable to call the selected row

我正在尝试识别闪亮仪表板中使用的gvistable中的选定行。 我已经按照演示程序(EventListener)规定的步骤进行操作,但是由于某些原因,我无法识别所选的行。

这是一个经过简化和修改的代码,试图使问题更清晰。

    library(shiny)
library(googleVis)
ui <- dashboardBody(box(title = "data table",width = 4, htmlOutput("dt")),
      verbatimTextOutput("row"))

server <- shinyServer(function(input,output,session){
  datatable <- data.frame("symbol" = c("alpha", "beta", "gamma"))

  output$dt <- renderGvis({
    d <- gvisTable(datatable, chartid = "mytable", options = list(gvis.listener.jscode= "
      var sel = chart.getSelected();
      var row = sel[0].row;
      var text = data.getValue(row,1);
      Shiny.onInputChange('text');
      "))
  })
  output$row <- renderPrint({
    input$text
  })
})
shinyApp(ui, server)

我总是在verbatimtextoutput上得到NULL输出。 谁能指出我在这里犯的错误吗? 我尝试通过论坛进行大量搜索,但找不到解决方案。

首先,我也许根本不需要问这个问题,因为解决方案非常简单。 但是,这可能对其他用户很有用,当您拥有将gvistable中的对象用作输入的其他图形或函数时,这是一个不错的选择。 这是解决方法

d <- gvisTable(datatable, chartid = "mytable", options = list(gvis.listener.jscode = 
"var text = data.getValue(chart.getSelection()[0].row,0);
Shiny.onInputChange('text', text.toString());")

这就有所不同,Shiny.onInputChange接受两个参数,而我错过了第二个参数。

希望这可以帮助其他人尝试类似的事情。 顺便说一句,另一个可能的解决方法是使用shinyjs。 无论如何,我也会尝试的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM