блестящий модуль selectInput не реагирует - PullRequest
0 голосов
/ 04 сентября 2018

По какой-то причине использование selectInput в модуле не реагирует на изменения входного значения. Я добавил минимальный пример, чтобы продемонстрировать мою проблему. Если я пишу один и тот же код без модуля, то есть вставка кода интерфейса пользователя и сервера модуля на основной сервер и функции интерфейса без функции пространства имен работают. Я не вижу проблемы с моим кодом.

require(shiny)

ui <- function(){
    dummyUI("test")
}

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

    callModule(dummy, "test")
}

dummyUI <- function(id) {
    ns <-NS(id)
    uiOutput(width = 6, ns("selectMaterial"))
}

dummy <- function(input, output, session) {
    # render UI for the filters
    output$selectMaterial <- renderUI({
        selectInput(
            inputId = "selectMaterial",
            label = "Choose Materials" ,
            choices = c("a","b"),
            multiple = TRUE)
    })

    observeEvent(input$selectMaterial ,{print("hi")})
}

shinyApp(ui(), server)

1 Ответ

0 голосов
/ 04 сентября 2018

Как уже упоминалось в этой статье (раздел «Использование renderUI в модулях») "), вам нужно использовать функцию пространства имен в renderUI.

require(shiny)

ui <- function(){
  dummyUI("test")
}

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

  callModule(dummy, "test")
}

dummyUI <- function(id) {
  ns <-NS(id)
  uiOutput(width = 6, ns("selectMaterial"))
}

dummy <- function(input, output, session) {
  # render UI for the filters
  output$selectMaterial <- renderUI({
    selectInput(
      inputId = session$ns("selectMaterial"),       ## <= namespace here
      label = "Choose Materials" ,
      choices = c("a","b"),
      multiple = TRUE)
  })

  observeEvent(input$selectMaterial ,{print("hi")})
}

shinyApp(ui(), server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...