闪亮:参考renderUI'时出错;模块内的s id
我正在使用闪亮:参考renderUI'时出错;模块内的s id,r,module,shiny,shinydashboard,R,Module,Shiny,Shinydashboard,我正在使用renderUI构建一个闪亮的模块,其中我指的是模块服务器函数内部生成的ID: library(shiny) library(DT) library(dplyr) module_ui <- function(id){ ns <- shiny::NS(id) shiny::tagList( fluidPage(uiOutput('test_ui')) ) } module <- function(input, output, session)
renderUI
构建一个闪亮的模块,其中我指的是模块服务器函数内部生成的ID:
library(shiny)
library(DT)
library(dplyr)
module_ui <- function(id){
ns <- shiny::NS(id)
shiny::tagList(
fluidPage(uiOutput('test_ui'))
)
}
module <- function(input, output, session) {
ns <- session$ns
output$test_ui <- renderUI({
shiny::fluidPage(
shiny::selectizeInput(
inputId = ns('plot_vars'),
label = 'Choose variables to plot',
choices = colnames(mtcars),
selected = colnames(select(mtcars, mpg, wt)),
multiple = TRUE
),
verbatimTextOutput(ns('text')),
DT::dataTableOutput(ns('d_plot'))
)
})
output$text <- renderText({
input$plot_vars
})
output$d_plot <- DT::renderDataTable({
input_data <- mtcars[, input$plot_vars]
DT::datatable(input_data)
})
}
ui <- module_ui('XXX')
server <- callModule(module, 'XXX')
shinyApp(ui, server)
库(闪亮)
图书馆(DT)
图书馆(dplyr)
模块ui首先,您必须在模块ui
中使用ns
:
module_ui <- function(id){
ns <- NS(id)
tagList(
fluidPage(uiOutput(ns('test_ui')))
)
}
其他事项:选择数据帧的某些列时设置drop=FALSE
:
input_data <- mtcars[, input$plot_vars, drop = FALSE]
input_数据这真是太棒了!非常感谢您的帮助和关于drop=FALSE
的精彩提示!
input_data <- mtcars[, input$plot_vars, drop = FALSE]