【问题标题】:How do you use a reactive parameter within a Shiny module?如何在 Shiny 模块中使用反应参数?
【发布时间】:2017-02-14 00:35:33
【问题描述】:

我有一个闪亮的仪表板页面,其中包含多个图表,我想共享一个通用的日期选择器,但将这些图表放入单独的模块中。

我了解当我使用 callModule 时,我需要使用响应式 per 传递对象

如果模块需要访问不属于该模块的输入,则包含应用程序应传递包装在反应式表达式中的输入值(即 reactive(...)):

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

【问题讨论】:

    标签: r module shiny


    【解决方案1】:

    如果不查看完整的可重现代码,很难确定。但是,每当您遇到错误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])

    【讨论】:

    • 做到了!非常感谢!
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2021-11-18
    • 2019-12-02
    • 2018-03-16
    • 2021-12-14
    • 2021-07-11
    • 2015-06-29
    • 2021-11-19
    相关资源
    最近更新 更多