Я пытаюсь использовать функцию removeUI()
из блестящего пакета, но у меня возникают некоторые трудности при удалении определенных элементов. Ниже приведен пример этой проблемы, слегка измененный по сравнению с примером в help(removeUI)
. В частности, закомментированная строка, содержащая textInput(
, была заменена на actionButton(
.
library(shiny)
ui <- fluidPage(
sidebarPanel(
actionButton("rmv", "Remove UI"),
actionButton("txt", "This is no longer useful")
#textInput("txt", "This is no longer useful")
)
)
# Server logic
server <- function(input, output, session) {
observeEvent(input$rmv, {
removeUI(
selector = "div:has(> #txt)"
)
})
}
# Complete app with UI and server components
shinyApp(ui, server)
Хотя компоненты textInput()
могут быть удалены, этот метод не работает для удаления аналогичных компонентов с помощью actionButton()
. Я не уверен, почему, поскольку логика селектора jQuery в этом случае выглядит одинаково.
Я также попытался изменить selector = "div:has(> #txt)"
на selector = "button:has(> #txt)"
, полагая, что поиск jQuery будет применяться к элементам button
, но опять же безрезультатно.
РЕДАКТИРОВАТЬ: найдено решение. Обтекание actionButton("txt", "This is no longer useful")
с помощью div()
помещает кнопку действия в блок div<>
, поэтому поиск будет работать.