Я работаю над функцией коробки shinydashboard.Я хочу добиться следующих очков.
1) При выводе таблицы вывода поле ввода должно быть свернуто.Есть ли способ, которым я могу достичь этого?
2) Когда я хочу напечатать таблицу из «Второго ящика» после события «Первый ящик», ответная реакция второй кнопки отправки не отвечает.Что нужно сделать, чтобы это исправить?
3) Индикатор выполнения отображается при загрузке страницы, но должен отображаться только при выводе таблицы вывода.Как это исправить?
ui.R
library(shiny)
library(shinyjs)
library(shinydashboard)
library(DT)
shinyUI(
dashboardPage(title = "My Page",
dashboardHeader(
title = "My Header",
titleWidth = 200
),
dashboardSidebar(
width = 200,
sidebarMenu(
menuItem("My Data", selected = FALSE,
menuSubItem(text = "My Data", tabName = "my_data", newtab = TRUE, selected = FALSE)
)
)
),
dashboardBody(
useShinyjs(),
tabItems(
# First tab content
tabItem(tabName = "my_data",
h2("Please select fields"),
div(
fluidRow
(
box(title = 'First Box', background = 'green', collapsible = TRUE, collapsed = TRUE,
column(2,
actionButton("sub_mt", "Show MT Cars")
)),
box(title = 'Second Box', background = 'yellow', collapsible = TRUE, collapsed = TRUE,
column(2,
actionButton("sub_iris","Show Iris Data")
))
)
)
)
),
DT::dataTableOutput('optable'),
textOutput('message')
)
))
server.R
library(shiny)
library(shinydashboard)
library(DT)
library(shinyjs)
if (interactive()) {
shinyServer(function(session,input,output){
dt_mtcars <- eventReactive(input$sub_mt,
{
mtcars
})
dt_iris <- eventReactive(input$sub_iris,
{
iris
})
output$optable <- DT::renderDataTable({
withProgress(message = 'Data Loading...',value = 0, {
for (i in 1:15) {
incProgress(1/15)
Sys.sleep(0.25)
}
})
if(input$sub_mt == TRUE)
{
dt_tab=dt_mtcars()
} else{
dt_tab=dt_iris()
}
datatable(dt_tab, rownames = FALSE, filter = 'top',
style = 'bootstrap', selection = 'single')}
)
}
)
}
1) При отображении выходных таблиц поля ввода должны быть свернуты автоматически.
2Я ожидаю, что eventReactive должен работать во всех условиях.
3) ProgressBar должен отображаться только при загрузке таблицы, а не при загрузке страницы.