Вы можете использовать conditionalPanel
, чтобы сделать это, в моем примере я использовал shinydashboard
, как это лучше
rm(list = ls())
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Basic Dashboard"),
dashboardSidebar(
sidebarMenu(id="menu1",
menuItem("Panel 1", tabName = "name1", icon = icon("th")),
menuItem("Input A file", tabName = "name2", icon = icon("th")),
conditionalPanel(
condition = "input.menu1 == 'name2'",
fileInput('file1', 'Choose file to upload',
accept = c('text/csv', 'text/comma-separated-values', 'text/tab-separated-values','text/plain', '.csv','.tsv')),
selectInput("slider_test", "Some Dynamic Slider", choices = list("Years" = 1, "Months" = 2))
),
menuItem("Panel 3", tabName = "name1", icon = icon("th"))
)
),
dashboardBody())
server <- function(input, output) {}
shinyApp(ui, server)
Edit: Загрузить Всплывающие используя shinyBS
пакет
rm(list = ls())
library(shiny)
library(shinydashboard)
library(shinyBS)
ui <- dashboardPage(
dashboardHeader(title = "Basic Dashboard"),
dashboardSidebar(
sidebarMenu(id="menu1",
menuItem("Panel 1", tabName = "name1", icon = icon("th")),
menuItem("Input A file", tabName = "name2", icon = icon("th")),
bsButton("upload", label = "Upload A file", block = TRUE, style="success"),
bsModal("upload_popup", "Upload a File", "upload", size = "small",
fileInput('file2', 'Choose file to upload',accept = c('text/csv', 'text/comma-separated-values', 'text/tab-separated-values','text/plain', '.csv','.tsv')),
bsButton("some_button", label = "Do Something Else", block = TRUE, style="success"))
),
conditionalPanel(
condition = "input.menu1 == 'name2'",
fileInput('file1', 'Choose file to upload',
accept = c('text/csv', 'text/comma-separated-values', 'text/tab-separated-values','text/plain', '.csv','.tsv')),
selectInput("slider_test", "Some Dynamic Slider", choices = list("Years" = 1, "Months" = 2))
)
),
dashboardBody())
server <- function(input, output) {}
shinyApp(ui, server)
разве есть в любом случае я могу изправлена позицию содержания меню, я хочу, чтобы это было прямо под каждым пунктом –
Может быть, я могу создать всплывающее окно, которое при нажатии кнопки «вводить файл» или что-то появится в небольшом окне, где вы можете загрузить файл? –
Нет Я добавил пояснения ниже. –