R 如何在菜单项中单击时触发操作?

R 如何在菜单项中单击时触发操作?,r,shiny,reactive-programming,shinydashboard,R,Shiny,Reactive Programming,Shinydashboard,我想在单击菜单项时触发一些操作。我在这里使用观察:当我单击“驱动程序”项目时,我希望在控制台中返回一些文本。不幸的是,当我运行应用程序时,出现错误:if:参数中的错误长度为0。我的menuItem存在,id也正常,所以不知道为什么会出现此错误。 这是可复制的代码(observe位于我的代码底部): 库(闪亮) 图书馆(bs4Dash) 图书馆(单张) bodyTag你错了。此问题的许多其他已发布解决方案使用选项卡作为侧栏菜单的id,但您没有: sidebarMenu( id

我想在单击
菜单项时触发一些操作。我在这里使用
观察
:当我单击“驱动程序”项目时,我希望在控制台中返回一些文本。不幸的是,当我运行应用程序时,出现错误:if:参数中的错误长度为0。我的
menuItem
存在,id也正常,所以不知道为什么会出现此错误。 这是可复制的代码(
observe
位于我的代码底部):

库(闪亮)
图书馆(bs4Dash)
图书馆(单张)

bodyTag你错了。此问题的许多其他已发布解决方案使用
选项卡
作为侧栏菜单的id,但您没有:

    sidebarMenu(
      id = "sidebarID",
      menuItem("Live", tabName = "live", icon = icon("circle")),
      menuItem("Drivers", tabName = "drivers", icon = icon("user-friends")),
      menuItem("Customers", tabName = "customers", icon = icon("building"))
    )

所以你需要

  observe({
    if(input$sidebarID == "drivers") {
      print("Drivers")
      #print(input$tabs)
    } else {
      print("other tabs")
    }
  })

这是一个简单的打字错误。

好的,所以我需要使用边栏id而不是选项卡id。谢谢澄清!
  observe({
    if(input$sidebarID == "drivers") {
      print("Drivers")
      #print(input$tabs)
    } else {
      print("other tabs")
    }
  })