数字输入按钮无法与操作按钮一起使用

问题描述 投票:0回答:1

我正在尝试创建一个闪亮的应用程序,我要求用户输入总营销预算。通过此输入,服务器代码将执行取决于此初始值的多个操作。

但是,我面临两个问题:

“操作”按钮不起作用。当我运行代码时,它会自动将输入的初始值设置为我放入 numericInput 中的“value”参数(3243452)。提交按钮最终只是装饰性的。代码示例如下:

ui <- fluidPage(
  titlePanel("Calculadora"),
  sidebarLayout(
    sidebarPanel(
      numericInput("total_budget", "Valor total do Investimento:", value = 3243452, min = 0),
      actionButton("submit", "Otimizar")
    ),
    mainPanel(
      plotlyOutput("grafico_investimento_atual"),
      tableOutput("table")
    )
  )
 )

2.我希望我的程序在每次用户更改投资价值时运行。但是,由于 actionButton 不起作用,输入值的任何更改都已经导致代码再次运行(实际上,它甚至不等待用户给出完整的值,它会在任何简单的更改后运行)。我该如何解决这个问题?

观察:输入值仅用作常量以在服务器函数内部执行查询。这里的目标是了解如何更好地使用操作按钮(这在我构建 UI 的方式中毫无用处)

r shiny shiny-reactivity
1个回答
1
投票

在服务器端,您的代码需要对操作按钮做出反应。这是一个如何实现这一点的简单示例:

library(shiny)

ui <- fluidPage(
  ui <- fluidPage(
    titlePanel("Calculadora"),
    sidebarLayout(
      sidebarPanel(
        numericInput("total_budget", "Valor total do Investimento:", value = 3243452, min = 0),
        actionButton("submit", "Otimizar")
      ),
      mainPanel(
        textOutput("test")
      )
    )
  )
)

server <- function(input, output, session) {
  
  output$test <- renderText(paste("User has selected a value of", input$total_budget)) |>
    bindEvent(input$submit)
  
}

shinyApp(ui, server)

您可以看到,在选择操作按钮之前,文本不会呈现到主面板。

© www.soinside.com 2019 - 2024. All rights reserved.