我想構建一個簡單的shiny
應用程序,它接受一個數字input$number
並僅在用戶單擊 ( input$click
)時才打印該數字。
到目前為止,我已經嘗試過這個:
library(shiny)
ui = fluidPage(
sliderInput("number", "number", value = 10, min = 0, max = 50),
actionButton("click", "Change output"),
textOutput("text")
)
server = function(input, output, session) {
observeEvent(input$click, {
output$text = renderText({
print(input$number)
})
})
}
shinyApp(ui, server)
當應用程序第一次啟動時,它會等待用戶點擊,然後才會顯示輸出text
。但是,在第一次點擊後,應用程序並不關心您是否點擊,它會自動顯示帶有滑塊的所選數字。
我錯過了什麼?
你可以isolate
用來防止反應性
library(shiny)
ui = fluidPage(
sliderInput("number", "number", value = 10, min = 0, max = 50),
actionButton("click", "Change output"),
textOutput("text")
)
server = function(input, output, session) {
output$text = renderText({
input$click
req(input$click) #to prevent print at first lauch
isolate(print(input$number))
})
}
shinyApp(ui, server)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句