最近,我对其中一个闪亮的仪表板进行了很多更新。没什么复杂的,但是现在服务器脚本正在变大,我想将代码模块化成几个部分。一件事是有很多用户参数,我想将所有这些参数放在脚本和源代码中。
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上,我无法真正理解该问题。有什么建议吗?
答案 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")
}