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您能看看这里的类似问题吗?