我有一个应用程序,当您单击
actionButton
时,它应该将输入设置为某个值;并且应通过 shinyjs
进行点击操作。然而,这只是第一件事;我不知道如何让第二个发生。或者也许它正在发生;但 reactive
对象内的数据没有更新。
这是一个最小的表示:
library(shiny)
ui <- fluidPage(
shinyjs::useShinyjs(),
selectInput("selector", label = "Carb selector", choices = unique(mtcars$carb)),
actionButton("generate", "OK!"),
tableOutput("results"),
actionButton("reset", "RESET"),
)
server <- function(input, output, session) {
data <- reactive({
req(input$generate)
isolate(
mtcars %>% filter(carb == input$selector)
)
})
output$results <- renderTable(data())
observeEvent(input$reset, {
updateSelectInput(session,
inputId = "selector",
label = "Carb selector updated",
choices = unique(mtcars$carb),
selected = 1)
shinyjs::click("generate")#This does not seem trigger when you hit reset!
})
}
shinyApp(ui, server)
它正在触发,但您在数据集中看不到它,因为您没有更改任何内容。试试这个
library(shiny)
ui <- fluidPage(
shinyjs::useShinyjs(),
selectInput("selector", label = "Carb selector", choices = unique(mtcars$carb)),
actionButton("generate", "OK!"),
tableOutput("results"),
actionButton("reset", "RESET"),
)
server <- function(input, output, session) {
data <- eventReactive(input$generate, {
req(input$generate)
isolate(
mtcars %>% filter(carb == input$selector) %>%
dplyr::mutate(clickedtimes = input$generate)
)
})
output$results <- renderTable(data())
observeEvent(input$reset, {
updateSelectInput(session,
inputId = "selector",
label = "Carb selector updated",
choices = unique(mtcars$carb),
selected = 1)
shinyjs::click("generate")#This does not seem trigger when you hit reset!
})
observe({print(input$generate)})
}
shinyApp(ui, server)