Javascript 首次加载应用程序时,根据单击事件显示小部件不起作用

Javascript 首次加载应用程序时,根据单击事件显示小部件不起作用,javascript,r,shiny,Javascript,R,Shiny,我在下面有一个闪亮的仪表板,右边栏的小部件应该只在“Plot”选项卡面板处于活动状态时才显示,这实际上是在小部件也显示在“Summary”选项卡面板中时第一次加载应用程序时发生的。我知道之所以会发生这种情况,是因为单击选项卡面板名称时会激活。但是我怎样才能修复它呢 library(golem) library(shiny) library(shinydashboard) library(shinydashboardPlus) shinyApp( ui = dashboardPagePlus(

我在下面有一个闪亮的仪表板,右边栏的小部件应该只在
“Plot”
选项卡面板处于活动状态时才显示,这实际上是在小部件也显示在
“Summary”
选项卡面板中时第一次加载应用程序时发生的。我知道之所以会发生这种情况,是因为单击选项卡面板名称时会激活。但是我怎样才能修复它呢

library(golem)
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
shinyApp(
  ui = dashboardPagePlus(
    header = dashboardHeaderPlus(
      enable_rightsidebar = TRUE,
      rightSidebarIcon = "gears"
    ),
    sidebar = dashboardSidebar(),
    body = dashboardBody(
      golem::activate_js(),
      navbarPage("Navbar!",
                 tabPanel("Summary"

                 ),
                 tabPanel("Plot"
                 )), 
      tags$script(
        '$("a[data-toggle=\'tab\']").click(function(){
          Shiny.setInputValue("tabactive", $(this).data("value"))
        })'
      )
    ),
    rightsidebar = rightSidebar(
      background = "dark",
      rightSidebarTabContent(
        id = 1,
        title = "Tab 1",
        icon = "desktop",
        active = TRUE,
        uiOutput("sl")

      )

    ),
    title = "Right Sidebar"
  ),
  server = function(input, output) {
    output$sl<-renderUI({
      sliderInput(
        "obs",
        "Number of observations:",
        min = 0, max = 1000, value = 500
      )
    })

    observeEvent( input$tabactive , {
      if (input$tabactive == "Plot"){
        golem::invoke_js("showid", "sl")
      } else {
        golem::invoke_js("hideid", "sl")
      }
    })



  }
)
库(傀儡)
图书馆(闪亮)
图书馆(shinydashboard)
图书馆(shinydashboardPlus)
shinyApp(
ui=仪表板PagePlus(
页眉=仪表板页眉(
enable_rightsidebar=TRUE,
rightSidebarIcon=“齿轮”
),
侧栏=仪表板侧栏(),
车身=仪表板车身(
傀儡::激活_js(),
导航栏页面(“导航栏!”,
选项卡面板(“摘要”
),
选项卡面板(“绘图”
)), 
标记$script(
“$”([data toggle=\'tab\'])。单击(函数(){
.setInputValue(“tabactive”,$(this.data(“value”))
})'
)
),
rightsidebar=rightsidebar(
background=“深色”,
右侧栏内容(
id=1,
title=“表1”,
icon=“桌面”,
活动=真,
uiOutput(“sl”)
)
),
title=“右侧边栏”
),
服务器=功能(输入、输出){

输出$sl您可以通过将
req(输入$tabactive)
添加到
renderUI
调用中来抑制初始渲染:

library(golem)
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)

shinyApp(
  ui = dashboardPagePlus(
    header = dashboardHeaderPlus(
      enable_rightsidebar = TRUE,
      rightSidebarIcon = "gears"
    ),
    sidebar = dashboardSidebar(),
    body = dashboardBody(
      golem::activate_js(),
      navbarPage("Navbar!",
                 tabPanel("Summary"

                 ),
                 tabPanel("Plot"
                 )), 
      tags$script(
        '$("a[data-toggle=\'tab\']").click(function(){
          Shiny.setInputValue("tabactive", $(this).data("value"))
        })'
      )
    ),
    rightsidebar = rightSidebar(
      background = "dark",
      rightSidebarTabContent(
        id = 1,
        title = "Tab 1",
        icon = "desktop",
        active = TRUE,
        uiOutput("sl")

      )

    ),
    title = "Right Sidebar"
  ),
  server = function(input, output) {
    output$sl <- renderUI({
      req(input$tabactive)
      sliderInput(
        "obs",
        "Number of observations:",
        min = 0, max = 1000, value = 500
      )
    })

    observeEvent( input$tabactive , {
      if (input$tabactive == "Plot"){
        golem::invoke_js("showid", "sl")
      } else {
        golem::invoke_js("hideid", "sl")
      }
    })
  }
)
库(傀儡)
图书馆(闪亮)
图书馆(shinydashboard)
图书馆(shinydashboardPlus)
shinyApp(
ui=仪表板PagePlus(
页眉=仪表板页眉(
enable_rightsidebar=TRUE,
rightSidebarIcon=“齿轮”
),
侧栏=仪表板侧栏(),
车身=仪表板车身(
傀儡::激活_js(),
导航栏页面(“导航栏!”,
选项卡面板(“摘要”
),
选项卡面板(“绘图”
)), 
标记$script(
“$”([data toggle=\'tab\'])。单击(函数(){
.setInputValue(“tabactive”,$(this.data(“value”))
})'
)
),
rightsidebar=rightsidebar(
background=“深色”,
右侧栏内容(
id=1,
title=“表1”,
icon=“桌面”,
活动=真,
uiOutput(“sl”)
)
),
title=“右侧边栏”
),
服务器=功能(输入、输出){

输出$sl mate您能看看这里的类似问题吗?