Закладка, кажется, не сохраняет входные или выходные значения для моего блестящего приложения - PullRequest
1 голос
/ 09 апреля 2019

В настоящее время я пытаюсь создать блестящее приложение, которое может выполнять базовое планирование проекта на основе некоторых выпадающих списков и временных объектов.

Одна вещь, которую я действительно хотел бы сделать с этим приложением, - этовозможность сохранять его состояние, чтобы люди могли использовать приложение непрерывно, а не перезапускать приложение каждый раз.

Проблема, с которой я столкнулся, заключается в том, что инструмент для закладок, похоже, не сохраняет входные значения, используемые в приложении.Он создает ссылку, но ссылка просто возвращает меня назад, если я только что открыл приложение из сценария R, а не из ссылки в закладке.

Есть несколько вещей, которые, я думаю, могут быть проблемой:

  1. Это может быть проблема с версией: В настоящее время у меня есть доступ к R 3.4.0 (2017-04-21) - "You Stupid Darkness".Из-за строгого ИТ-отдела обновить мою версию нелегко.Если это проблема с версией, это нормально, но я не совсем готов списать ее как проблему с версией, не исчерпав своих возможностей, так как запросить обновленную версию нелегко.
  2. Iпопытался использовать onBookmark и onBookmark, но ни одна из этих опций не работает.Я видел, что некоторые потоки, кажется, указывают, что нужно использовать реактивные значения, но я не знаю, смогу ли я использовать для этого выходные данные своей таблицы.
    http://shiny.rstudio.com/articles/advanced-bookmarking.html

  3. Я проверил более простые коды,такие как примеры на главной странице закладок, и они, кажется, работают.

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)

Я хотел бы иметь его там, где я нажимаюкнопка закладки, и она предоставляет входные данные, использованные до применения закладки, а не входные данные по умолчанию.

Дайте мне знать, если я смогу кое-что прояснить, спасибо.

...