После предыдущего вопроса { ссылка } я пытаюсь вложить динамические c аккордеоны в блестящее приложение.
Как видно из приведенного ниже примера, ничего не происходит, когда нажав на «+» actionLink (созданный insertUI). Я попытался отладить, вставив браузер () в функцию наблюдателя этого действия. Ссылка и консоль R напечатали следующее сообщение в ответ на insertUI:
function ()
{
.callbacks$remove(id)
}
<environment: 0x00000000138245b8>
Что это значит?
вот код блестящего приложения, которое я хотел бы исправить:
library(shiny)
library(dqshiny)
selectorUI <- function(id){
ns = NS(id)
tags$div(
fluidRow(
column(6, uiOutput(ns('new_ui')))
),
id = paste0('ui', id)
)
}
selectorServer <- function(input, output, session){
ns = session$ns
output$new_ui <- render_dq_box_group({
dq_accordion(ns("foo"),
titles = ns("input"),
contents = list(textInput(inputId = ns("txt"),
label = "")),
bg_color = NULL,
options = list(animate = 200, collapsible = TRUE),
icons = c(open = "hand-point-down", closed = "hand-point-right")
)
})
}
ui = fluidPage(
fluidRow(
actionButton("add", "+"),
selectorUI(1),
selectorUI(2),
selectorUI(3),
tags$div(id = 'placeholder'),
actionButton("delete", "-")
)
)
server = function(input, output) {
callModule(selectorServer, 1)
callModule(selectorServer, 2)
callModule(selectorServer, 3)
counter <- reactiveValues(value = 3) # number of inputs already present
observeEvent(input$add, {
counter$value <- counter$value + 1
insertUI(
selector = "#placeholder",
ui = selectorUI(counter$value)
)
callModule(selectorServer, counter$value)
insertUI(
selector = "#placeholder",
ui = tagList(
actionLink(paste0("add",counter$value), "+"),
tags$div(id = paste0('placeholder',counter$value))
)
)
})
observeEvent(input$delete, {
removeUI(
selector = paste0("#ui", counter$value)
)
counter$value <- counter$value - 1
})
observeEvent(input[[paste0("add",counter$value)]], {
counter$value <- counter$value + 1
insertUI(
selector = paste0("#placeholder",counter$value),
ui = selectorUI(counter$value)
)
callModule(selectorServer, counter$value)
})
}
shinyApp(ui, server)
Редактировать: после нескольких попыток я не могу понять: - / У кого-нибудь есть идеи, где Я мог бы искать? Спасибо