Приложение My R Shiny содержит текст и данные. Когда я щелкаю строку с данными, данные изменяются, и таблица обновляется с использованием прокси с данными, чтобы страница таблицы не изменялась. Также текст обновляется, чтобы показать, сколько строк было нажато.
Проблема в том, что при обновлении текста он также обновляет таблицу, которая сбрасывается на страницу 1., разрушая смысл использования прокси-сервера с данными.
Вот рабочий пример. Запустите его с последней строкой кода и без нее (строка кода начинается с v$selected_count <- ...
)
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(
uiOutput("app_ui")
)
, server = function(input, output){
v <- reactiveValues(
selected_count = 0
, data = iris
)
output$app_ui <- renderUI({
tagList(
h5(v$selected_count) # Want this to update without affecting the datatable
, DTOutput('tbl')
)
})
output$tbl = renderDT({
datatable(iris)
})
observeEvent(
input$tbl_rows_selected
, {
i <- input$tbl_rows_selected
v$data[i, "Species"] <- ""
dataTableProxy("tbl") %>% replaceData(v$data, resetPaging = FALSE, clearSelection = FALSE)
v$selected_count <- v$selected_count + 1 # Comment this line to see the difference to the datatable
}
)
}
)