闪亮的呼叫模块

时间:2018-06-21 17:22:22

标签: r module shiny

最近,我对其中一个闪亮的仪表板进行了很多更新。没什么复杂的,但是现在服务器脚本正在变大,我想将代码模块化成几个部分。一件事是有很多用户参数,我想将所有这些参数放在脚本和源代码中。

源代码

 mc_High_parameter <- function(input, output, session) {

      output$High <- renderUI({
        sliderInput("High", 'High Assumption:',
                    min = 0, max = .25,value = .1)
      })

    }

在服务器端通话

callModule(mc_High_parameter,'High')

显示在用户界面侧

uiOutput("High")

该应用已加载,但滑块未显示在UI上,我无法真正理解该问题。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

发光的模块需要一些习惯,特别是在使用renderUI时。我将着眼于this GitHub page,以帮助您了解如何将它们放在一起,并阅读Shiny help page on the session object,这是模块的基础。

在您的特定情况下,请进行一些更改以使其运行:

1。您需要一个未包含的UI模块。在这里调用uiOutput

mc_UI <- function(id) {
  ns <- NS(id)
  fluidPage(
    uiOutput(ns("High"))
  )
}

2。您需要在ui中调用UI模块。

ui <- fluidPage(
  fluidRow(
    mc_UI("High")
  )
)

3。您需要在session$ns()的ID中使用sliderInput,以便从UI正确匹配名称空间。

mc_High_parameter <- function(input, output, session) {
    output$High <- renderUI({
      sliderInput(session$ns("High"), "High Assumption:",
            min = 0, max = .25,value = .1)
    })
}

4。确保在session函数中调用server

server <- function(input, output, session) {
  callModule(mc_High_parameter,"High")
}