Предположим, у нас есть набор виджетов, каждый со своей собственной меткой ввода. Как создать реактивный объект, значением которого является символ, который представляет идентификатор ввода последнего виджета, который был изменен?Создание Блестящая реактивная переменная, которая указывает, какой виджет был последним изменен
Например, если мы имеем
ui.R
shinyUI(fluidPage(
textInput('txt_a', 'Input Text A'),
textInput('txt_b', 'Input Text B")
))
server.R
shinyServer(function(input, output) {
last_updated_widget <- reactive({
#hypothetical code that indicates ID value of last updated widget
})
})
Желаемый результат заключается в следующем. Если пользователь изменяет первое текстовое поле, то значение last_updated_widget()
будет "txt_a"
. Если они изменяют второй блок, значение last_updated_widget()
становится "txt_b"
. Я ищу результат, который распространяется на очевидное обобщение установки значения как идентификатора любого из виджета, который был настроен последним.
Я бы хотел, чтобы это работало для произвольного количества входов виджетов, включая случай, когда они были сгенерированы оператором renderUI()
. Поэтому отдельный оператор reactive()
для каждого виджета не является вариантом. Однако, если реактивный оператор требует петли над всеми именами виджетов (или что-то в этом роде), я могу с этим работать. И несколько реактивных утверждений в порядке, если это фиксированная сумма, а не функция количества виджетов.
Это кажется довольно простой проблемой, поэтому я был удивлен, когда это стало препятствием для меня. Я чувствую, что решение будет действительно очевидным, и я просто не вижу, так что, если это так, я приношу свои извинения за то, что вы задали новый вопрос. Но любая помощь была бы весьма признательна.
Я не думаю, что он/она хочет вручную решения, как это, оригинальный вопрос говорит, что это должно owrk с произвольным числом входов –
daatali является правильным, но я редактировал эту деталь в вопрос. Если Geovany уже отвечал, прежде чем я его отредактировал, я извиняюсь – Bridgeburners
Прошу прощения, я написал образец кода, прежде чем вы обновили вопрос, поэтому я не заметил ограничения и просто вставлял код. Эта функция была бы полезна, возможно, лучше работать внутри с блестящим ядром. Кстати, @daattali ваша библиотека shinyjs очень полезна. – Geovany