我有一个闪亮的应用程序,用户在其中选择一组输入,例如x范围,y范围,缩放类型以及通过下拉列表选择数据集的特定子集.
这一切都是通过使用反应物来完成的.X和Y范围滑块输入对数据集选择的变化作出反应,因为必须再次找到最小值和最大值.这可能需要大约1-2秒,而闪亮的应用程序正在工作,用户在下拉列表中选择一个不同的选项.在这1-2秒期间,绘图将切换为使用旧的x和y范围绘制所选的新数据子集,然后在x和y范围滑块更改后快速切换到正确的绘图.
修复就是通过隔离其他所有内容来刷新按钮上的图.但是有没有办法让情节对变化保持反应,但是等到所有依赖事物都完成计算?
谢谢
这是情节:
output$plot1 <- rCharts::renderChart2({
if(!is.null(input$date_of_interest) &&
!is.null(input$xrange) &&
!is.null(input$yrange) &&
!is.null(data()) &&
isolate(valid_date_of_interest())) {
filtered_data<- dplyr::filter(isolate(data()), id==input$choice)
p <- tryCatch(plot_high_chart(
data,
first_date_of_interest = input$date_of_interest,
ylim = input$yrange,
xlim = input$xrange),
error = function(e) e,
warning = function(w) w)
if(!inherits(p, "error") && !inherits(p, "warning")) {
return(p)
}
}
return(rCharts::Highcharts$new())
})
Run Code Online (Sandbox Code Playgroud)
和x范围(y范围相似):
output$xrange <- renderUI({
if(!is.null(input$date_of_interest) &&
!is.null(input$choice) &&
!is.null(valid_date_of_interest()) &&
isolate(valid_date_of_interest())) {
temp_data <- dplyr::filter(isolate(data()), date == input$date_of_interest)
temp <- data.table::data.table(temp_data, key = "child.id")
the_days <- as.double(as.Date(temp$last.tradeable.dt) …Run Code Online (Sandbox Code Playgroud) 我已经搜索了 stackoverflow 和整个网络,但我找不到这个看似简单的问题的好答案。
情况如下:
出现的问题如下:
需要解决方案
AirdatePickerInputShinywidgets 的具有此特定功能(update_on=c('change', 'close')。我需要的是我的 pickerInput仅在“关闭”时更新。这样结果值仅发送回服务器一次。示例:用户界面
ui <- fluidPage(
# Title panel
fluidRow(
column(2,
wellPanel(
h3("Filters"),
uiOutput("picker_a"),
uiOutput("picker_b"),
)
),
)
)
Run Code Online (Sandbox Code Playgroud)
服务器
server <- function(input, output, session) {
# Start values for each filter
all_values_for_a <- tbl(conn, "table") %>%
distinct(a) %>%
collect()
all_values_for_b <- tbl(conn, "table") %>%
distinct(b) %>%
collect()
output$picker_a <- renderUI({
pickerInput(
inputId = "picker_a",
label = "a:",
choices …Run Code Online (Sandbox Code Playgroud)