繁体   English   中英

如何在运行时通过单击 R 中的 actionButton 来更新数据

[英]How to to update data by clicking actionButton in R in runtime

我想每次都在更新按钮上更新 output 数据。 这是我第一次运行代码时在更新按钮上显示 output 的代码,但在运行时如果输入发生更改,output 会自动更新。

library(shiny)

ui <- fluidPage(
  titlePanel("My Shop App"),
  
  sidebarLayout(
    sidebarPanel(
      helpText("Controls for my app"),
      
      selectInput("item", 
                  label = "Choose an item",
                  choices = list("Keyboard", 
                                 "Mouse",
                                 "USB",
      
      sliderInput("price", 
                  label = "Set Price:",
                  min=0, max = 100, value=10),
      
      actionButton ("update","Update Price")
    ),
    
    mainPanel(
      helpText("Selected Item:"),
      verbatimTextOutput("item"),
      helpText("Price"),
      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)

创建一个依赖项并将它们放入reactive并返回它:

server <- function(input, output) {
  
  SelectInput <- eventReactive(input$update,{
    list(item = input$item, price = input$price)
  })
  
  output$item <- renderText(SelectInput()$item)
  output$price <- renderText(SelectInput()$price)
}

或者您可以isolate ,但是您必须将按钮反应添加到每个侦听器

server <- function(input, output) {

  output$item <- renderText({
    req(input$update)
    input$update
    isolate(input$item)
  })
  
  output$price <- renderText({
    req(input$update)
    input$update
    isolate(input$price)
  })
  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM