使用来自 YAML header 的参数和闪亮的运行时 Rmd

using params from YAML header with a shiny runtime Rmd

我想使用 params 传递闪亮应用程序的设置。考虑下面的文档,当复选框被更改时,它只打印一条消息。我希望在 yaml header.

中使用 params 可以配置该消息

但是,这似乎失败了,因为 params 似乎仅在呈现文档时可用(请注意它在文档本身中正确打印消息)。这样对吗?有什么方法可以在运行时读取 params 吗?这在任何地方都有记录吗?

文件如下:

---
title: "Test"
output: html_document
runtime: shiny
params:
  message: "hi"
---

Can see this: `r params$message`

```{r eruptions, echo=FALSE}
shiny::checkboxInput("cb","Checkbox")
```

```{r, echo=FALSE}
observeEvent(input$cb, {
  # This works
  message("clicked")
  # This fails:
  # Error in message(params$message) : object 'params' not found
  try(message(params$message))
})
```

这通过将 params 设置为非局部变量来实现:

---
title: "Test"
output: html_document
runtime: shiny
params:
  message: "hi"
---

```{r}
params <<- params
```
......