【发布时间】:2018-06-20 21:22:09
【问题描述】:
我正在使用 learnr 编写教程,并希望包含一些“使用 Shiny 的其他交互形式”(来自 learnr tutorial)。我是 Shiny 的新手,但管理 - 主要是通过复制和粘贴 - 来处理几个示例。除了以下一个:(代码取自视频讲座“如何从Shiny开始”的第二部分,代码示例“08-reactiveValues.R”)
我的 YAML 标头:
output:
learnr::tutorial:
progressive: true
allow_skip: true
runtime: shiny_prerendere
我的 R 块:
```{r my-dist-ui, context="render"}
actionButton(inputId = "norm", label = "Normal")
actionButton(inputId = "unif", label = "Uniform")
plotOutput("hist")
```
```{r my-dist-server, context="server"}
rv <- reactiveValues(data = rnorm(100))
observeEvent(input$norm, { rv$data <- rnorm(100) })
observeEvent(input$unif, { rv$data <- runif(100) })
output$hist <- renderPlot({ hist(rv$data) })
```
我可以看到为情节保留的空白空间,但没有情节。当我点击按钮时没有变化。没有错误信息。
会不会是某些命令(例如 reactiveValues 或 observeEvent)不适用于 runtime: shiny_prerendered? (上面的示例在控制台中以其原始形式运行。但另一个带有绘图的示例 - Geyser 示例 - 在我的Learnr Rmd 文件中确实有效。)
我在 Intel Mac OS X 10_13_5、rmarkdwon 1.10、shiny 1.1.0 和 learnr 0.9.2 上使用 R 版本 3.5.0 和 RStudio 版本 1.1.453。
【问题讨论】:
-
我认为这只是一个错字:你写的是
content="server"而不是context="server"。更正后,情节就会显示给我。 -
不,这不是问题所在。对不起这里的错字。它发生在多次试验之后,我确信我正确使用了“context = server”。我更新了我的问题。
-
我还应该提到:每当我包含上述两个 R 块时,我的学习文件中的所有其他图也都消失了,并且“继续”按钮不再起作用。 (但左侧的章节链接列表确实有效。)
-
明确一点:我已经修正了我的错字,重新启动 R 并清除了我的渲染输出并再次尝试。与我的问题中描述的问题相同。
-
它适用于我使用相同的代码和 YAML 标头,因此反应式命令不是问题的根源。您可以发送整个文件吗?也许问题来自与其他块的交互。