我从this question了解到,您可以将shinyApp选项设置为showcase mode
,以便在用户与您的应用程序交互时可视化(即突出显示)您的Shiny代码的哪些部分正在执行。
但是,当我尝试使用knitr / R markdown将其应用于交互式Shiny文档时,展示的代码无法显示。
如何让showcase mode
在互动文档中发挥作用?
示例:
---
title: "Showcase Mode Doesn't Work in knitr"
output: html_document
runtime: shiny
---
See, look, no highlatable code shows up with the app:
```{r, echo=FALSE}
library(shiny)
ui <- fluidPage(
textInput(inputId = 'textin', label = ''),
textOutput(outputId = 'textout')
)
server <- function(input, output){
output$textout <- renderText({input$textin})
}
shinyApp(ui = ui, server = server, options = list(display.mode='showcase'))
```
答案 0 :(得分:2)
您无法为showcase mode
文档指定markdown
的原因很简单 - 它不存在。
Knitr
(和Rmarkdown
个文档)预先在html
页面中呈现输出结果。对于交互式html
文档,它会预先渲染您的&#34;渲染对象的所有输出&#34;并根据输入指定在它们之间切换(如果我理解今年谢毅辉在Rconf给出的解释)。
而在shiny
中,输出是动态生成的,因为有一个后端(您的计算机,服务器等)在输入更改时运行代码new。这就是为什么你可以打开showcase
并看到那些变化并动态重新运行的原因。