r - 动态左侧菜单向下而不是向右列出项目
问题描述
我正在尝试创建一个动态左侧菜单(标题),但这些项目是向下而不是向右列出的。我想它tagList
在定义 UI 时与包装器有关。
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyWidgets)
library(stringr)
ui = dashboardPage(
dashboardHeader(
leftUi = tagList(uiOutput("filter"))
),
dashboardSidebar(
pickerInput(
"inputParameters",
"Parameters:",
choices = c("a", "b", "c"),
multiple = TRUE,
options = list(
`actions-box` = TRUE,
size = 10,
`selected-text-format` = "count > 1"
)
)
),
dashboardBody(),
title = "DashboardPage"
)
server = function(input, output) {
params <- reactive(input$inputParameters)
output$filter = renderUI(
lapply(seq_along(params()), function(i) {
dropdownButton(
inputId = paste0("mydropdown", i),
label = params()[i],
icon = icon("sliders"),
status = "primary",
circle = FALSE,
selectizeInput(
paste0("input", paste0(str_to_title(params()[i]))),
paste0(paste0(str_to_title(params()[i]), ":")),
choices = 1:3,
multiple = TRUE,
selected = 1:3
)
)
})
)
}
shinyApp(ui, server)
解决方案
未经测试,我会尝试:
output$filter = renderUI({
ddbuttons <- lapply(seq_along(params()), function(i) {
dropdownButton(
inputId = paste0("mydropdown", i),
label = params()[i],
icon = icon("sliders"),
status = "primary",
circle = FALSE,
selectizeInput(
paste0("input", paste0(str_to_title(params()[i]))),
paste0(paste0(str_to_title(params()[i]), ":")),
choices = 1:3,
multiple = TRUE,
selected = 1:3
)
)
})
do.call(splitLayout, ddbuttons)
})
并且不要使用tagList
,只是uiOutput("filter")
。
推荐阅读
- tabs - 如何将 konsole 选项卡放在左侧?
- ssl - 在非阻塞模式下,openssl 允许在客户端使用任何证书
- reactjs - Jest,Enzyme,React - 测试 Iframe OnLoad
- javascript - 从 Dropzone.js 获取全尺寸图像(不是缩略图大小)的数据 URI
- c++ - c++ Boost if .extension() == "" 这意味着这个文件是一个文件夹?
- google-apps-script - 检查单元格中的值并将其与单个单元格进行比较
- sas - SAS 中的宽到长数据集
- android - 从 Gradle 获取 PullRequest 编号
- sql-server - SQL Server:批处理中的语句都作为一个事务执行?
- phpstorm - 使 PhpStorm 的自动格式在控制结构之前添加换行符