R 两个ActionButton中只有一个以闪亮的颜色响应
我有如下闪亮的应用程序示例。我需要两个R 两个ActionButton中只有一个以闪亮的颜色响应,r,shiny,shinydashboard,R,Shiny,Shinydashboard,我有如下闪亮的应用程序示例。我需要两个selectInput控件,每个selectInput控件仅在我单击操作按钮时响应 我发现第一个操作按钮applyNameFilter根本没有响应。当鼠标悬停在上方时,它不会高亮显示。第二个操作按钮applyTimeFilter似乎正常 有人知道为什么吗?太奇怪了。。。我不知道如何解决这个问题,也不知道如何在这里寻求帮助。非常感谢 library(shinydashboard) library(shiny) library(shinyWidgets) lib
selectInput
控件,每个selectInput
控件仅在我单击操作按钮时响应
我发现第一个操作按钮applyNameFilter
根本没有响应。当鼠标悬停在上方时,它不会高亮显示。第二个操作按钮applyTimeFilter
似乎正常
有人知道为什么吗?太奇怪了。。。我不知道如何解决这个问题,也不知道如何在这里寻求帮助。非常感谢
library(shinydashboard)
library(shiny)
library(shinyWidgets)
library(shinyjs)
library(dplyr)
df = data.frame(Name = c('A', 'B', 'C', 'A', 'B', 'C'),
Year = c('2020', '2020', '2020', '2019', '2019', '2019'),
Value = c(12, 33, 44, 55, 22, 11))
ui <- dashboardPage(
dashboardHeader(title = "Example" ),
dashboardSidebar(
sidebarMenu(
menuItem("tab", tabName = "tab", icon = icon("globe"))
)
),
dashboardBody(
useShinyjs(),
tabItems(
tabItem(tabName = "tab",
div(id = 'timeAllFilters',
box( width=12, background = 'green',
selectizeInput(inputId = 'year',
label='Select Year',
choices = c('', '2020', '2019'),
multiple=FALSE,
options = list(
maxItems = 1,
placeholder = '',
onInitialize = I("function() { this.setValue(''); }"))),
actionBttn(
inputId = 'applyTimeFilter',
label = "Apply",
style = "gradient",
color = "danger",
icon = icon("") ),
actionBttn(
inputId = 'clearTimeFilter',
label = "Clear",
style = "gradient",
color = "danger",
icon = icon("") )
) #box
), #div
div(id = 'nameAllFilters',
dropdown(
tags$h3("Filters"),
selectizeInput(inputId = 'name',
label='Select Name',
choices = c('','A', 'B'),
multiple=FALSE,
options = list(
maxItems = 1,
placeholder = '',
onInitialize = I("function() { this.setValue(''); }"))),
actionBttn(
inputId = 'applyNameFilter',
label = "Apply",
style = "gradient",
color = "danger",
icon = icon("") ),
actionBttn(
inputId = 'clearNameFilter',
label = "Clear",
style = "gradient",
color = "danger",
icon = icon("") )
) #dropdown
), #div
dataTableOutput('table')
) #tabItem
) #tabItems
) #dashboardBody
) #dashboardPage
server <- function(input, output, session) {
df1 = reactive({
input$applyTimeFilter
isolate( df %>% filter(Year %in% input$year) )
})
# clear time filters
observeEvent(input$clearTimeFilter, {
reset("timeAllFilters")
})
df2 = reactive({
input$applyNameFilter
isolate ( df1() %>% filter(Name %in% input$name) )
})
# clear name filters
observeEvent(input$clearNameFilter, {
reset("nameAllFilters")
})
output$table = renderDataTable({
DT::datatable(df2())
})
}
shinyApp(ui = ui, server = server)
库(ShinydaShashboard)
图书馆(闪亮)
图书馆(shinyWidgets)
图书馆(shinyjs)
图书馆(dplyr)
df=data.frame(Name=c('A','B','c','A','B','c'),
年份=c('2020年'、'2020年'、'2019年'、'2019年'、'2019年'),
值=c(12,33,44,55,22,11))
ui%筛选器(名称%input$Name中的名称%)
})
#清除名称过滤器
observeEvent(输入$clearNameFilter{
重置(“nameAllFilters”)
})
输出$table=renderDataTable({
DT::数据表(df2())
})
}
shinyApp(用户界面=用户界面,服务器=服务器)
问题似乎在于actionBttn
位于框()内。它没有任何问题也能正常工作。您有没有可能找到另一种方法,不用box()
就可以获得相同的样式
非常感谢。但是,当两个过滤器都被选中时,我的表格仍然不会显示,即使在我移除该框之后也是如此。你知道为什么吗@伊恩·坎贝尔顺便说一句,我更改了数据并更正了一些错误。年份变量应该是character。我觉得问题仍然来自第一个过滤器,即使在删除了框之后,表没有显示和按钮没有响应我认为是两个独立的问题。无论出于何种原因,该框导致父容器的宽度为0px,因此第二个筛选器容器与之重叠。没有显示的表格可能是典型的因素问题。如果尚未升级到4.0,请将stringsAsFactor=FALSE
添加到df
的定义中,谢谢。这的确是经典的因素问题!