У меня есть Shinydashboard (здесь используется пакет shinydashboard), где я беру ввод от пользователя для его имени пользователя и пароля, подключаюсь к Redshift, используя его, выполняю запрос Redshift, используя его учетные данные, а затем хочу отобразить выходные данные запросакак DataTable.
Почему-то вывод запроса не отображается, когда я делаю это, и он завершается с ошибкой, не выдавая никакой ошибки.
Вот выдержка из кода:
library(shinydashboard)
library(DBI)
library(shiny)
library(shinyjs)
library(RPostgreSQL)
library(stringi)
library(data.table)
library(DT)
library(dplyr)
ui <- dashboardPage(
dashboardHeader(title = "Basic dashboard"),
dashboardSidebar(
sidebarMenu(
menuItem("Connect to RedShift", # 1, variables in this will start with menu_1_
tabName = "connect_to_RS"
))),
dashboardBody(
tabItems(
tabItem(tabName = "connect_to_RS",
tabBox(
title = "",width = 12,
tabPanel(title = "Connection to Redshift",
#declare 2 text inputs and submit button
fluidRow(
column(3,offset = 0,
textInput(inputId = "menu_1_tab_1_ltst_qtr",label = "Most Recent Quarter")),
column(3,offset = 0,
textInput(inputId = "menu_1_tab_1_RS_user",label = "Redshift Username")),
column(3,offset = 0,
passwordInput(inputId = "menu_1_tab_1_RS_pwd",label = "Redshift Password")),
column(12,
submitButton(text = "Submit"))
),
mainPanel(
dataTableOutput("menu_1_tab_1_table_1")
)
)
)
))))
server <- function(input, output) {
conn <- reactive({
RPostgres::dbConnect(
drv = RPostgres::Postgres(),
host = "xxxx",
port = xxxx,
dbname = 'xx',
user = input$menu_1_tab_1_RS_user,
password = input$menu_1_tab_1_RS_pwd)
})
ltst_qtr_data <- reactive({RPostgres::dbGetQuery(conn(),given_sql_query) })
output$menu_1_tab_1_table_1 <- renderDataTable({
expr = ltst_qtr_data()
})
}
shinyApp(ui,server)
Примечание: код работает, если я использую функцию renderTable вместе с функцией tableOutput, и таблица отображается.Но я хочу использовать функцию dataTableOutput вместе с выводом renderDataTable.