小编Tob*_*s D的帖子

访问 Shiny 模块内的父命名空间

我正在尝试updateSelectInput从子模块内的父命名空间中选择输入。在模块函数中,据我所知,我在命名空间内,因此我无法从父命名空间访问和更新 selectInput。我该如何解决这个问题?

library(shiny)
library(shinydashboard)

moduleUI <- function(id) {
  ns <- NS(id)
  box(
    title=actionLink(ns("link"),"This is a link"),
    plotOutput(ns("plot"))
  )
}

module <- function(input, output,session,number) {
  output$plot <- renderPlot({
    plot(number)
  })

  observeEvent(input$link,{
    print(paste0("Number is: ",number))
    updateSelectInput(session,"selectInput",selected=number)  #Doesn't work
  })
}

ui <-  
  dashboardPage(
    dashboardHeader(title="Title"),
    dashboardSidebar(
      selectInput("selectInput","Choose one option",choices=seq(1,10),selected=1)
    ),
    dashboardBody(
      moduleUI("5"),
      moduleUI("10")
    )
  )

server <- function(session,input, output) {
  callModule(module=module,id="5",5)
  callModule(module=module,id="10",10)
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

r shiny

4
推荐指数
1
解决办法
2498
查看次数

标签 统计

r ×1

shiny ×1