R语言自定义HTML函数报错求助:$运算符对原子向量无效
错误原因
你的函数参数名tags和shiny包中用于创建HTML标签的内置tags对象重名了。调用函数时传入的tags='HTML'是字符串类型(原子向量),此时代码里的tags$button会被解析为对这个字符串参数使用$操作符,而原子向量不支持$,所以触发报错。
解决方案
- 重命名冲突的参数:把函数的
tags参数改成其他名字(比如tag_label),避免和内置对象混淆。 - 修正内容引用:函数里的
'title'、'paragraph'、'tags'是固定字符串,要换成对应的参数变量,否则生成的卡片内容不会显示你传入的实际值。
修正后的代码
library(shiny) # 必须加载shiny包,div、p、tags等函数都来自这里 card_function <- function(title, paragraph, tag_label){ div( class = "card", div(class = "header"), div( class = "info", p(class = "title", title), p(paragraph) ), div( class = "footer", p(class = "tag", tag_label), tags$button(id = "action", "Get started") )) } # 调用测试 card_function(title = 'Titulo', paragraph = 'paragrafo', tag_label = 'HTML')
额外说明
如果不想加载整个shiny包,也可以用shiny::div、shiny::p、shiny::tags$button这种完整命名空间的写法,进一步避免命名冲突。
内容的提问来源于stack exchange,提问作者JohnBones JohnBones
相关产品推荐
相关产品推荐

