我有一个闪亮的仪表板页面,其中有几个图表,我想分享一个共同的日期选择器,但是将这些图表放在单独的模块中。
我理解当我使用callModule
时,我需要使用反应性
如果模块需要访问不属于模块的输入,则包含应用程序应传递包含在反应式表达式中的输入值(即反应式(...)):
callModule(myModule, "myModule1", reactive(input$checkbox1))
但是,我不明白在另一边做什么。
中的:
graphRoFCUI("RoFCNameSpace"),
dateRangeInput("dateRange", "Select Date Range:"
, start = max("2016-6-27", Sys.Date()-366)
, end = Sys.Date()
, min = "2016-6-27"
, max = Sys.Date()
)
服务器中的:
callModule(graphRoFC, id = "RoFCNameSpace", conn, reactive(input$dateRange))
在我的模块中.R:
graphRoFCUI <- function(id) {
ns <- NS(id)
plotlyOutput(outputId = ns("RoFCOverTime"))
}
...
graphRoFC <- function(input, output, session, conn, dateRange) {
limitDateRangePercentRoFCDF <- reactive({
PercentRoFCDF.dateLimited <- subset(PercentRoFCDF, TicketLocalCreatedDate > dateRange[1] & TicketLocalCreatedDate < dateRange[2])
return(PercentRoFCDF.dateLimited)
})
...
}
我得到的是:
Warning: Error in $: object of type 'closure' is not subsettable
Stack trace (innermost first):
80: as.Date
79: ggplotly [sdesc.R#43]
78: func
77: origRenderFunc
76: output$RoFCNameSpace-RoFCOverTime
1: runApp
答案 0 :(得分:2)
如果不查看完整的可重现代码,很难肯定。但是,每当您遇到错误object of type 'closure' is not subsettable
时,它几乎总意味着您有一个您未能使用()
的被动对象。我的猜测是你需要改变这一行:
PercentRoFCDF.dateLimited <- subset(PercentRoFCDF, TicketLocalCreatedDate > dateRange[1] & TicketLocalCreatedDate < dateRange[2])
要
PercentRoFCDF.dateLimited <- subset(PercentRoFCDF, TicketLocalCreatedDate > dateRange()[1] & TicketLocalCreatedDate < dateRange()[2])