gpt4 book ai didi

javascript - 多个选项卡的 R Shiny 页面刷新按钮

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:45 25 4
gpt4 key购买 nike

我正在构建一个 Shiny 的仪表板,它有多个选项卡,每个选项卡都在一个独立的页面中,可以从侧边栏中的选项卡项进行定向。

我正在尝试通过点击此处的链接在每个选项卡上添加页面刷新按钮 Page refresh Button in R shiny

但是,我只能将它添加到一个选项卡,当我复制并粘贴相同的代码到其他选项卡时,它失败了

下面是我目前使用的结构:

library(shiny)
library(shinyjs)
library(shinydashboard)

jscode <- "shinyjs.refresh = function() { history.go(0); }"

header <- dashboardHeader(

)

sidebar <- dashboardSidebar(
tags$head(tags$style(HTML('.content-wrapper { height: 1500px !important;}'))),
sidebarMenu (
menuItem("A", tabName = "d1"),
menuItem("B", tabName = "d2"),
menuItem("C", tabName = "d3")
)
)

body <- dashboardBody(
useShinyjs(),
extendShinyjs(text = jscode),
tabItems(
tabItem(tabName = "d1",
box(title = "AAA",
actionButton("refresh", "Save"))
),
tabItem(tabName = "d2",
box(title = "BBB")
),
tabItem(tabName = "d3",
box(title = "CCC")
)
)
)

# UI
ui <- dashboardPage(header, sidebar, body)

# Server
server <- function(input, output, session) {

observeEvent({
input$aa
input$refresh
})

observeEvent(input$refresh, {
js$refresh();
})

observeEvent({
input$bb
})

observeEvent({
input$cc
})


}

# Shiny dashboard
shiny::shinyApp(ui, server)

基本上,现在我在 tab 1 中只有名为 SAVE 的页面刷新按钮用于输入 aa

我想知道如何在 tab 2tab 3 上使用相同的页面刷新按钮来输入 bb 和 < strong>cc 也是。理想的解决方案是在用户单击任何页面上的任何保存按钮时刷新 Shiny 仪表板。

提前致谢

最佳答案

您必须为每个选项卡创建 3 个不同的按钮,然后您可以调用其中一个来刷新:

library(shiny)
library(shinyjs)
library(shinydashboard)

jscode <- "shinyjs.refresh = function() { history.go(0); }"

header <- dashboardHeader(

)

sidebar <- dashboardSidebar(
tags$head(tags$style(HTML('.content-wrapper { height: 1500px !important;}'))),
sidebarMenu (
menuItem("A", tabName = "d1"),
menuItem("B", tabName = "d2"),
menuItem("C", tabName = "d3")
)
)

body <- dashboardBody(
useShinyjs(),
extendShinyjs(text = jscode),
tabItems(
tabItem(tabName = "d1",
box(title = "AAA",
actionButton("b1", "Save"))
),
tabItem(tabName = "d2",
box(title = "BBB",
actionButton("b2", "Save"))
),
tabItem(tabName = "d3",
box(title = "CCC",
actionButton("b3", "Save"))
)
)
)

# UI
ui <- dashboardPage(header, sidebar, body)

# Server
server <- function(input, output, session) {

observeEvent(c(input$b1,input$b2,input$b3), {
js$refresh()
},ignoreNULL = T,ignoreInit = T)

}

# Shiny dashboard
shiny::shinyApp(ui, server)

关于javascript - 多个选项卡的 R Shiny 页面刷新按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com