R操作按钮和eventReactive不起作用

时间:2019-07-24 12:26:02

标签: r shiny

这是一个简单的问题,但是我不明白为什么我的简单按钮按下时不会显示文本。

我有一个ID为“ go”的actionButton。当用户按下按钮时,我只是想在我的textOutput框中显示“已按下按钮”。另外,我想在我的R控制台窗口中显示一条消息。

library(shiny)
ui <- fluidPage(
    actionButton("go", "Go"),
    verbatimTextOutput("text", placeholder = TRUE)
)

server <- function(input, output) {
  displayText <- eventReactive(input$go, {
    output$text <- renderText("Button Pressed")
  })
}

shinyApp(ui, server)

现在,将显示我的GO按钮,并且在其下方,我看到TextOutput框,其中没有任何内容(如预期)。但是,当我按下按钮时,什么也没发生。我正在尝试显示“已按下按钮”。

1 个答案:

答案 0 :(得分:1)

除非您使用eventReactive,否则不会对其进行评估,在这里我添加了一个观察来触发:

    library(shiny)
    ui <- fluidPage(
        actionButton("go", "Go"),
        verbatimTextOutput("text", placeholder = TRUE)
    )

    server <- function(input, output) {
        displayText <- eventReactive(input$go, {
            output$text <- renderText({input$go;"Button Pressed"})
        })

        observe(displayText())
    }

    shinyApp(ui, server)

由于您没有向displayText返回任何内容,请考虑使用:

library(shiny)
ui <- fluidPage(
    actionButton("go", "Go"),
    verbatimTextOutput("text", placeholder = TRUE)
)

server <- function(input, output) {
    observeEvent(input$go, {
        output$text <- renderText("Button Pressed")
    })
}

shinyApp(ui, server)
相关问题