У меня проблема с преобразованием моего блестящего приложения в Shiny Modules.В моем приложении у меня есть ConditionalPanel, где условной является js-строка для DT: datatable_rows_selected.Я не понимаю, как мне нужно переписать это условие для работы с концепцией ShinyModule.
Пример: Это правильно работает (когда выбираются строки в таблице - открыт ConditionalPanel):
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(
DT::dataTableOutput("testTable"),
conditionalPanel(condition = "typeof input.testTable_rows_selected !== 'undefined' && input.testTable_rows_selected.length > 0",
verbatimTextOutput("two")
)
),
server = function(input,output) {
output$testTable <- DT::renderDataTable(mtcars, selection=list(mode="multiple",target="row"))
output$two <- renderPrint(input$testTable_rows_selected)
}
)
Но это не работа:
library(shiny)
library(DT)
testUI <- function(id) {
ns <- NS(id)
tagList(
DT::dataTableOutput(ns("testTable")),
conditionalPanel(condition = "typeof input.testTable_rows_selected !== 'undefined' && input.testTable_rows_selected.length > 0",
verbatimTextOutput(ns("two"))
)
)
}
test <- function(input,output,session) {
ns <- session$ns
output$testTable <- DT::renderDataTable(mtcars, selection=list(mode="multiple",target="row"))
output$two <- renderPrint(input$testTable_rows_selected)
# return(reactive(input$testTable_rows_selected))
}
shinyApp(
ui = testUI("one"),
server = function(input,output) {
out <- callModule(test,"one")
}
)