我目前正在尝试制作一个闪亮的应用程序,该应用程序可以基于一些下拉菜单和时间对象来进行一些基本的项目计划。
我真的想能够与此应用程序一起做的一件事就是能够保存其状态,以便人们可以连续使用该应用程序,而不是每次都重新启动该应用程序。
我遇到的问题是书签工具似乎没有保存应用程序中使用的输入值。它确实创建了一个链接,但是如果我只是从R脚本而不是从带有书签的链接中打开应用程序,则该链接会将我发送回去。
我认为可能是以下几件事:
我尝试使用onBookmark和onBookmark,但是这些选项似乎都不起作用。我已经看到一些线程似乎指示需要使用reactValues,但是我不知道是否可以使用我的表输出。
http://shiny.rstudio.com/articles/advanced-bookmarking.html
我检查了更简单的代码,例如书签主页中的示例,它们似乎起作用。
https://shiny.rstudio.com/articles/bookmarking-state.html
rm(list = ls())
graphics.off()
################################## OMM Dashboard for Reporting #####################################
library(shinydashboard)
library(shiny)
library(shinyjs)
library(tidyverse)
header <- dashboardHeader(title = "App V 1.0",
titleWidth = 300)
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem(text = 'Welcome', tabName = 'welcome', icon = icon('globe')),
menuItem(text = "Foobar", tabName = 'FB', icon = icon("line-chart"))
),
width = 300
)
body <- dashboardBody(
fluidPage(
bookmarkButton(),
tabItems(
tabItem(tabName = 'welcome',
box(h1("Lorem Ipsum"),
h3("Lorem ipsum dolor sit amet, vix decore partem menandri ad, ius eu harum labitur suavitate. An veritus facilisi quaerendum eam, at vis dicat praesent. Modo agam ex pri, te cum legimus persecuti voluptatibus, nec ignota deserunt et. Simul verear regione eu nec, mel insolens oportere intellegebat eu, eius regione adversarium vis id. Posse senserit gubergren pro ei. Expetendis deterruisset ea est, per porro inimicus id, et platonem volutpat qui."))),
tabItem(tabName = 'FB',
titlePanel("Foo Bar"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = 'Foo',
label = "Foo",
choices = c("Level 1", "Level 2", "Level 3")),
dateRangeInput(inputId = 'foo_date',
label = "Foo date",
min = '2001-01-01',
max = '2100-01-01',
format = "yyyy-mm-dd"),
selectInput(inputId = "Bar",
label = "Bar",
choices =c("Level 1", "Level 2", "Level 3")),
dateRangeInput(inputId = 'bar_date',
label = "Bar Date",
min = '2017-01-01',
max = '2100-01-01',
format = "yyyy-mm-dd")
),
mainPanel(
dataTableOutput(outputId = 'tableFB')
))
)
)))
ui <- function(request){
dashboardPage(skin = "blue", header = header,
sidebar = sidebar,
body = body)
}
server <- function(input, output){
dat_FB <- shiny::reactive(data.frame(
Topic = c("Foo",
"Bar"),
Start_date = c(format(input$Foo_date[1]),
format(input$Bar_date[1])),
End_date =c(format(input$Foo_date[2]),
format(input$Bar_date[2])),
Scope = c(input$Foo,
input$Bar)))
output$tableFB <- renderDataTable({
dat_FB()
})
}
options(browser = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe")
enableBookmarking(store = "server")
runApp(list(ui = ui, server = server), launch.browser = TRUE)
当我单击书签按钮时,我想把它放到哪里,它提供应用书签之前使用的输入,而不是默认输入。
让我知道是否可以进一步澄清, 谢谢。