Я видел несколько предыдущих вопросов, которые могут обернуться вокруг этой проблемы, но я не смог найти четкого ответа на этот вопрос.
Моя проблема в том, что элемент пользовательского интерфейса, добавленный с помощью insertUI
, который зависит от реактивного значения , не обновляется.
В приведенном ниже примере, если добавить новую selectInput
с помощью кнопки, а затем изменить пол, выбор будет обновлен только в первой selectInput
.
. вопрос: есть ли "официальный" способ сделать это selectInput
реактивным? Я могу представить некоторые обходные пути, но они не идеальны.
server.R
library(shiny)
library(tidyverse)
server <- function(input, output, session) {
data <- reactive({
req(input$genderSelection)
starwars %>%
filter(gender == input$genderSelection)
})
output$characterSelection1 <- renderUI({
selectInput(
"char1",
"Character 1",
choices = data() %>%
.$name
)
})
observeEvent(
input$btn,
{
insertUI(
selector = "#selection2",
where = "beforeEnd",
ui = selectInput(
"char2",
"Character 2",
choices = data() %>%
.$name
)
)
}
)
}
ui.R
ui <- fluidPage(
radioButtons(
"genderSelection",
"Gender",
choices = c("male", "female")
),
uiOutput("characterSelection1"),
tags$div(
id = "selection2",
actionButton("btn", "Add selection")
)
)