Добрый день! Буду очень благодарна, если поможете разобраться. Есть довольно сложносочиненный дешборд Shiny. Пытаюсь сделать в приложении передачу значений инпутов в url и обратно, чтобы в любом состоянии дешборда можно было скопировать url и поделиться им. Использую конструкцию вида ниже и запуск через enableBookmarking.
observe({
reactiveValuesToList(input)
session$doBookmark()
})
onBookmarked(function(url) {
updateQueryString(url)
})
Всё ок, но есть нюанс. Часть инпутов зависимы между собой, т.е. варианты селектора одного инпута зависят от выбора в другом инпуте, при этом варианты в этих инпутах вычисляются запросом к таблице. Поэтому когда урл со всеми инпутами вставляешь в браузер и запускаешь приложение, зависимые инпуты сбрасываются в дефолтное состояние (с остальными все ок).
Пример вычисления инпута ниже. Понимаю, что это связано с тем, что значения инпутов реактивные и вызывают изменения всех связанных инпутов, но не могу доразобраться в теме и понять, как сделать так, чтобы зависимые инпуты не сбрасывались. Пробовала изолировать все по-очереди методом тыка, это не помогает.
output$assignments_topic_level_1 <- renderUI({
name <- unique(
subset(
tree,
dif_topic_level_0==get_name_theme(input$assignments_topic_level_0) &
subject_id5==mappings[[input$subject_id]]
)$dif_topic_level_1
)
id <- lapply(name, get_id_from_theme)
names(id) <- name
selectInput(
'assignments_topic_level_1',
label='Подраздел',
choices=c(id,""),
selected = ""
)
})
Может быть кто-то делал что-то подобное?