Я использовал this answer для вставки pdf-файла в мое блестящее приложение. Когда я впервые создаю PDF через блестящие входы пользовательского интерфейса и «отправляю» с помощью кнопки действия, pdf создается из входов интерфейса и отображается в режиме просмотра.В блестящем приложении, как я могу заставить и встроенный просмотрщик PDF обновиться при изменении исходного файла
Однако, когда я меняю документ с помощью пользовательского интерфейса и снова представляю, просмотрщик все еще отображает старый отчет, даже если содержимое файла изменилось.
Как я могу заставить его отображать новый pdf?
Это воспроизводимый пример моей проблемы, лучше всего работает при открытии в браузере.
ui.R
library(shiny)
shinyUI(fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
textInput("textin", label = "text input")
, actionButton("makepdf", "Make pdf")
),
mainPanel(
htmlOutput("pdfviewer")
)
)
))
server.R
library(shiny)
shinyServer(function(input, output) {
observeEvent(input$makepdf,{
title <- input$textin
print(title)
pdf("www/test.pdf")
plot(mtcars$mpg,mtcars$disp, main = title)
dev.off()
})
observeEvent(input$makepdf,({
output$pdfviewer <-renderText({
return(paste('<iframe style="height:600px; width:100%" src="'," test.pdf", '"></iframe>', sep = ""))
})
})
)
})
Шаги к reporoduce:
- Запуск приложения в браузере
- Тип ничего в "ввода текста" окно и нажмите «Сделать pdf»
- Введите что-то другое в поле «текстовый ввод» и нажмите «Сделать pdf»
- Обратите внимание, что программа просмотра PDF по-прежнему показывает результат с шага 2, хотя исходный файл в вашей папке www отображает изменение, сделанное на шаге 3.
После больше опыта я теперь понимаю, почему это правильно по моему исходному примеру. Для любого, кто хочет делать блестящие приложения регулярно, я думаю, что важно понять, что реальная концепция реактивности в блестящей форме, и необходимо смотреть [эти два обсуждения] (https://www.rstudio.com/resources/webinars/shiny-developer-conference /) от Джо Ченга. , – DataJack