Shinyjs:在闪亮的仪表板中单击选项 [英] Shinyjs: On click option in shiny dashboard

查看:0
本文介绍了Shinyjs:在闪亮的仪表板中单击选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个闪亮的仪表板应用程序,带有3个选项卡和一个通知菜单。我正在尝试跟踪用户在仪表板上的活动,并希望记录他们在仪表板上的每次点击。

选项卡集面板在server.R中的代码如下:

output$tabs1=renderUI(
    tabsetPanel(type="tab",
                tabPanel(id="OverallTab","Overall Activity"),
                tabPanel(id="Tab1","Tab 1 details"),
                tabPanel(id="Tab2","Tab 2 details"))

我的部分通知代码如下:

output$notiMenu <- renderMenu({
            all_nots <- apply(u_notd, 1, function(row) {
              notificationItem(text = row[["notification"]], icon("users"))
            })
            dropdownMenu(type = "notifications", .list = all_nots)
          })

如果用户单击选项卡或通知菜单,我将尝试使用shinyjs写入数据帧,如下所示:

  tab1_clicled=""
  tab2_clicked=""
  noti_clicked=""
  shinyjs::onclick("notiMenu",print("Notification clicked"),noti_clicked="YES")
  shinyjs::onclick("Tab1",print("Tab1 clicked"),tab1_clicled="YES")
  shinyjs::onclick("Tab2", print("Tab2 clicked"),tab2_clicled="YES")
  df=as.data.frame(tab1_clicked,tab2_clicked,noti_clicked)

我在这里面临两个问题

1)单击选项似乎不适用于选项卡面板,使用shinyjs引用(here),我看到只提到对选项卡集面板使用单击,而不是每个选项卡面板?

2)我无法在onClick函数中修改tab1_clicked的值。它抛出一条错误消息:Unhanded Error in观察者:Unused Argument(tab1_clicLED="yes")

感谢任何帮助。

推荐答案

我只是快速浏览了一下您的代码,发现了两个错误。onclick的第一个参数是元素的ID。在您的例子中,您需要实际选项卡按钮的ID,但不幸的是,选项卡在Slight中的工作方式是,"tab1"实际上是选项卡面板容器的ID,而不是选项卡按钮本身的ID。看看一个闪亮的应用程序的HTML,你就会看到这一点。选项卡有点奇怪和烦人,而且在Slight中很难处理选项卡按钮本身。

其次,onclick的第二个参数是表达式,但您正在尝试运行两个表达式print("Tab1 clicked")tab1_clicled="YES"。您需要将它们包装在{}中,以便将其视为一个表达式,如下所示:

onclick(id, {print("Tab1 clicked"); tab1_clicled="YES"}

但不幸的是,获取选项卡按钮的ID很困难,因此我认为onclick对此没有帮助

这篇关于Shinyjs:在闪亮的仪表板中单击选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆