Я хотел бы создать блестящее приложение с двумя кнопками.Пользователи могут нажимать кнопку «Добавить пользовательский интерфейс» столько раз, сколько захотят, что приведет к появлению текстовых полей.Затем пользователи могут вводить числа в поля ввода, нажимать кнопку «Сумма» и вычислять общую сумму.
Ниже приведен мой текущий код, модифицированный из примера кода из ?insertUI
.У меня вопрос, я не уверен, как ссылаться на идентификатор ввода из обновленного пользовательского интерфейса (в этом случае, новые текстовые поля).Моя текущая попытка не может вычислить сумму.Конечный результат всегда равен 0.
# Define UI
ui <- fluidPage(
actionButton("add", "Add UI"),
actionButton("sum", "Sum"),
# Report the output
h4("The total from input"),
textOutput("text")
)
# Server logic
server <- function(input, output, session) {
observeEvent(input$add, {
insertUI(
selector = "#add",
where = "afterEnd",
ui = textInput(paste0("txt", input$add),
"Insert some text")
)
})
# Calculate the total from the text inputs
output$text <- eventReactive(input$sum, {
as.character(sum(as.numeric(unlist(mget(ls(pattern = "^txt"))))))
})
}
# Complete app with UI and server components
shinyApp(ui, server)