我想根据用户从 DT 表中选择的不同行来更新 numericInput 值。
下面是我的简单示例。因此,如果用户选择第一行,则该值应为 50。如果用户选择第二行,则该值应为 100。有没有不使用“刷新”按钮的方法?
library(shiny)
library(DT)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
numericInput("price",
"Average price:",
min = 0,
max = 50,
value = 0),
actionButton('btn', "Refresh")
),
mainPanel(
DT::dataTableOutput('out.tbl')
)
)
)
server <- function(input, output, session) {
price_selected <- reactive({
if (input$out.tbl_rows_selected == 1) {
price = 50
} else {
price = 100
}
})
observeEvent (input$btn, {
shiny::updateNumericInput(session, "price", value = price_selected())
})
output$out.tbl <- renderDataTable({
Level1 <- c("Branded", "Non-branded")
Level2 <- c("A", "B")
df <- data.frame(Level1, Level2)
})
}
shinyApp(ui = ui, server = server)