Я попытался следовать документации Shinyjs, чтобы создать кнопку, которая может скрыть график, когда пользователь щелкнул ее в Shiny.
library("shiny")
library("quantmod")
library("data.table")
library("highcharter")
library("shinyjs")
ui <-
fluidPage(
highchartOutput("plot"),
actionButton("btn", "Click me")
)
server <- function(input, output, session){
##Retrieve stock data
stock_data <- getSymbols("IBM", auto.assign = FALSE)
output$plot <-
renderHighchart({
plot_max <- 200
plot_min <- 100
highchart(type = "stock") %>%
hc_yAxis_multiples(
create_yaxis(2, height = c(200, 50), min = plot_min, max = plot_max, turnopposite = TRUE)
) %>%
# series :D
hc_add_series_flags(stock_data, dates = as.Date("2018-10-12", format = "%Y-%m-%d"), title = "Testing flag", text = "some words") %>%
hc_add_series(stock_data, yAxis = 0) %>%
hc_add_series(stock_data$IBM.Volume, yAxis = 1, type = "column", color = hex_to_rgba("green", 0.7))
})
observeEvent(input$btn, {
shinyjs::hide(id = "plot")
})
}
shinyApp(ui, server)
Однако при нажатии кнопки график не отключается. Я тестировал другие функции, включая Shinyjs::disable(), и результат тот же, с появлением сообщений об ошибках, таких как «disable() не определено».
Что можно сделать, чтобы решить эту проблему? Большое спасибо.
согласно @StéphaneLaurent rdrr.io/cran/shinyjs/man/useShinyjs.html
@StéphaneLaurent Большое спасибо, это решает проблему.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны добавить
useShinyjs()сразу послеfluidPage.