Quarto中无法在Shiny server代码块调用params的问题咨询
问题:Quarto Shiny Server上下文无法直接调用params参数
我原本预期带有#| context: server的代码块可以直接调用params参数,但实际测试发现无法实现,示例代码如下:
--- title: "test" format: html editor: visual server: shiny params: n: 5 ---
verbatimTextOutput("text")
#| context: server output$text <- shiny::renderText(params$n)
两种可行的替代方案
方案一:在data上下文逐个提取params参数
通过#| context: data代码块逐个提取params中的参数,再在server上下文使用:
--- title: "test" format: html editor: visual server: shiny params: n: 5 ---
verbatimTextOutput("text")
#| context: data #| include: false n <- params$n
#| context: server output$text <- shiny::renderText(n)
这种方式的缺点是需要逐个管理每个param元素,参数较多时比较繁琐。
方案二:在data上下文复制整个params对象
在#| context: data代码块中复制整个params对象,后续在server上下文直接调用复制后的对象:
--- title: "test" format: html editor: visual server: shiny params: n: 5 ---
verbatimTextOutput("text")
#| context: data #| include: false params2 <- params
#| context: server output$text <- shiny::renderText(params2$n)
这种方式无需逐个管理参数,使用起来更便捷,相对更优。
疑问
为何无法在#| context: server代码块中直接使用params$n?目前Quarto官方文档中也未提及Shiny上下文下的params相关内容。
内容的提问来源于stack exchange,提问作者Giovanni Colitti
相关产品推荐
相关产品推荐

