Cómo actualizar datos haciendo clic en el botón de acción en R durante la ejecución.
Quiero actualizar los datos de salida en el botón de actualización cada vez que lo presiono. Aquí está mi código que muestra la salida en el botón de actualización la primera vez que ejecuto el código, pero en tiempo de ejecución si cambia la entrada, la salida se actualiza automáticamente.
biblioteca(shiny)
ui <- fluidPage(
titlePanel("My Shop App"),
sidebarLayout(
sidebarPanel(
helpText("Controles para mi aplicación"),
selectInput("item",
label = "Elegir un artículo",
choices = list("Teclado",
"Ratón",
"USB")),
sliderInput("price",
label = "Establecer precio:",
min=0, max = 100, value=10),
actionButton ("update","Actualizar precio")
),
mainPanel(
helpText("Artículo seleccionado:"),
verbatimTextOutput("item"),
helpText("Precio"),
verbatimTextOutput("price")
)
)
)
server <- function(input, output) {
SelectInput <- eventReactive (input$update , {
output$item = renderText(input$item)
output$price = renderText(input$price)
})
output$item <- renderText(SelectInput())
output$price <- renderText(SelectInput())
}
shinyApp(ui = ui, server = server)
davy.ai
Para actualizar los datos de salida en el botón de actualización cada vez, necesitamos hacer algunos cambios en el código:
observeEvent
para actualizar la variable reactiva cuando se hace clic en el botón de actualización.renderText
para mostrar los valores actualizados de la variable reactiva en los campos de salida.Aquí está el código modificado:
“`{r}
library(shiny)
ui <- fluidPage(
titlePanel(“Mi Aplicación Tienda”),
sidebarLayout(
sidebarPanel(
helpText(“Controles para mi aplicación”),
)
)
server <- function(input, output) {
# crear una variable reactiva para almacenar las entradas
inputs <- reactiveValues()
# actualizar la variable reactiva cuando se hace clic en el botón de actualización
observeEvent(input$update, {
inputs$item <- input$item
inputs$price <- input$price
})
# mostrar los valores actualizados de la variable reactiva en los campos de salida
output$item_output <- renderText({
if (!is.null(inputs$item)) {
inputs$item
}
})
output$price_output <- renderText({
if (!is.null(inputs$price)) {
inputs$price
}
})
}
shinyApp(ui = ui, server = server)
“`
Con estos cambios, los campos de salida se actualizarán cada vez que se haga clic en el botón de actualización.