如何在R Shiny中声明自定义标签?报错求助
解决R Shiny自定义HTML标签报错的方法
错误原因是tags$my-tag的写法违反了R语法规则——R对象名称不允许包含连字符,这里的my-tag会被解析成tags$my减去tag,导致调用tag()函数时参数传递错误。
以下是两种可行的解决办法:
方法一:直接使用tag()函数
tag()函数支持直接传入带连字符的自定义标签名,是创建自定义HTML标签最直接的方式:
library(shiny) ui <- fluidPage( titlePanel("Test"), tag("my-tag", id = "my-tag") ) server <- function(input, output) { } shinyApp(ui = ui, server = server)
方法二:给自定义标签添加驼峰式别名
如果习惯使用tags$的调用风格,可以给带连字符的标签创建一个驼峰式别名,添加到tags对象后再调用:
library(shiny) # 为自定义标签创建驼峰式别名 tags$myTag <- function(...) { tag("my-tag", ...) } ui <- fluidPage( titlePanel("Test"), tags$myTag(id = "my-tag") ) server <- function(input, output) { } shinyApp(ui = ui, server = server)
两种方法最终都会在页面中生成<my-tag id="my-tag"></my-tag>这个自定义HTML标签,解决报错问题。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

