基于Shiny模块化框架实现初始显示图片点击按钮隐藏功能
模块化Shiny应用:点击按钮隐藏图片
本应用初始状态下显示一张图片,点击侧边栏的「Submit」按钮后,图片将被隐藏。初始显示效果如下:

app.R
library(shiny) library(shinyjs) library(shinydashboard) library(shinyWidgets) library(dplyr) source("sideUI.R") source("sideServer.R") source("imgUI.R") source("imgServer.R") # 构建UI与Server并运行应用 ui <- dashboardPage( dashboardHeader(title = "生物多样性"), dashboardSidebar(sideUI("side")), dashboardBody( useShinyjs(), imgUI("imgPL") ) ) server <- function(input, output, session) { # 在另一个模块中使用响应式对象 city_input <- sideServer("side") imgServer("imgPL", btn = city_input$btn) } shinyApp(ui, server)
imgUI.R
imgUI <- function(id) { ns <- NS(id) tagList( div( id = ns("showimg"), img(src='C:/Users/User/Documents/appsilon2/appsilon-main/www/apps.png', align = "center") ) ) }
imgServer.R
imgServer <- function(id, btn) { moduleServer( id, function(input, output, session) { ns <- session$ns # 创建命名空间函数 observeEvent(btn(), { shinyjs::hide(id = ns("showimg")) # 使用带命名空间的ID }) } ) }
sideUI.R
sideUI <- function(id) { ns <- NS(id) tagList( actionButton(ns("action"), "Submit") ) }
sideServer.R
sideServer <- function(id) { moduleServer( id, function(input, output, session) { # 返回包含响应式对象的列表,供其他模块调用 return(list(btn = reactive(input$action))) } ) }
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

