从自定义 html 输入创建闪亮的输出
Creating shiny outputs from custom html inputs
为什么当我使用带有相应 ID 的 tags$button
时 observeEvent()
没有被触发,但是当我使用带有 inputId 的 actionButton
时却触发了。区别在哪里?我怎样才能使我的自定义 html tags$button
成为实际的“事件”?
这不起作用:
library(shiny)
if (interactive()) {
options(device.ask.default = FALSE)
ui = fluidPage(
tags$button(id = "action", "BTN"),
plotOutput(outputId = "plot"))
server = function(input, output, session){
observeEvent(input$action, {
output$plot = renderPlot({
hist(iris$Sepal.Length)})
})
}
shinyApp(ui, server)
}
这样做:
library(shiny)
if (interactive()) {
options(device.ask.default = FALSE)
ui = fluidPage(
actionButton(inputId = "action", label = "BTN"),
plotOutput(outputId = "plot"))
server = function(input, output, session){
observeEvent(input$action, {
output$plot = renderPlot({
hist(iris$Sepal.Length)})
})
}
shinyApp(ui, server)
}
如果您将操作按钮 class 添加到您的按钮
,它会起作用
tags$button(id = "action", "BTN", class="action-button")
为什么当我使用带有相应 ID 的 tags$button
时 observeEvent()
没有被触发,但是当我使用带有 inputId 的 actionButton
时却触发了。区别在哪里?我怎样才能使我的自定义 html tags$button
成为实际的“事件”?
这不起作用:
library(shiny)
if (interactive()) {
options(device.ask.default = FALSE)
ui = fluidPage(
tags$button(id = "action", "BTN"),
plotOutput(outputId = "plot"))
server = function(input, output, session){
observeEvent(input$action, {
output$plot = renderPlot({
hist(iris$Sepal.Length)})
})
}
shinyApp(ui, server)
}
这样做:
library(shiny)
if (interactive()) {
options(device.ask.default = FALSE)
ui = fluidPage(
actionButton(inputId = "action", label = "BTN"),
plotOutput(outputId = "plot"))
server = function(input, output, session){
observeEvent(input$action, {
output$plot = renderPlot({
hist(iris$Sepal.Length)})
})
}
shinyApp(ui, server)
}
如果您将操作按钮 class 添加到您的按钮
,它会起作用tags$button(id = "action", "BTN", class="action-button")