【发布时间】:2020-04-02 19:20:14
【问题描述】:
以下是我最初的问题的简化版本。我在这里 试图将“observeEvent”函数运行到另一个“observeEvent”中 功能。代码应按顺序执行以下步骤:
- 点击“打印”按钮,打印输入的数字
- 点击“添加”按钮,添加 +5 并打印数字
该代码仅在第一次工作。从第二次开始 显示添加的数字以及打印的数字,无需单击 “添加”按钮。
请帮忙。
library(shiny)
ui <- fluidPage(
fluidRow(
sliderInput("n", min = 0, max = 100, value = 50, label = "Choose a number"),
actionButton("Print","Print the number"),
verbatimTextOutput("num1"),
actionButton("Add","Add +5 to the printed number"),
verbatimTextOutput("num2")
)
)
server <- function(input, output){
all <- reactiveValues(
n = 50,
a = 55
)
observeEvent(input$Print,{
all$n <- input$n
output$num1 <- renderPrint(all$n)
observeEvent(input$Add,{
all$d <- input$n + 5
output$num2 <- renderPrint(all$d)
})
})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
observeEvent根据定义将触发其中的任何内容。将它们分开并在第二个observeEvent中使用all$n,即在input$Add -
是的。它正在工作..再次感谢苏利曼。
-
您能否提供完整的有效代码作为答案?谢谢。