我正在尝试使用模块外部的反应数据调用R闪亮模块,我阅读了教程并知道'()'不应包含在响应数据的callModule参数中。但是我收到一条错误消息:
这样做后Warning: Error in as.vector: cannot coerce type 'closure' to vector of type
'list
。
以下是该模块的代码:
pieTableUI <- function(id, header, titleInfo, width = 6) {
ns <- NS(id)
infoClick <- h3(header,
tipify(
el = icon("info-circle"), trigger = "hover click",
title = titleInfo
))
tagList(
tabBox(
tabPanel("Pie Chart",
infoClick,
htmlOutput(ns("piechart"))),
tabPanel("Table",
infoClick,
htmlOutput(ns("table"))),
width = width
)
)
}
pieTable <- function(input, output, session, dataChart, x, y) {
output$piechart <- renderGvis({
gvisPieChart_HCSC(dataChart, x, y)
})
output$table <- renderGvis({
gvisTable(dataChart)
})
}
我打电话给模块:
callModule(pieTable, "agegroupplot", dataChart = agegroup_data, x = "AGE_GROUP_CLEAN", y = "n")
其中agegroup_data
是来自服务器的反应数据帧。
答案 0 :(得分:1)
我认为问题是你没有在dataChart
函数体内pieTable
之后添加括号。要获取反应式表达式的值,必须调用它,类似于函数。
pieTable <- function(input, output, session, dataChart, x, y) {
output$piechart <- renderGvis({
gvisPieChart_HCSC(dataChart(), x, y)
})
output$table <- renderGvis({
gvisTable(dataChart())
})
}