r - 有什么方法可以根据条件在 Shiny 中将面板变灰?
问题描述
我正在开发一个基本的 Shiny UI 模板,用户必须选择某个按钮才能给应用程序输入。现在我正在使用 conditionalPanel() 但不是输入按钮完全消失,是否可以将它们变灰?
这是以下代码:
library(shiny)
library(shinyjs)
ui<-fluidPage(
headerPanel("Title"),
sidebarPanel(
radioButtons("toggle", "Some Buttons",
choices = list("Choice 1" = 1,
"Choice 2" = 2),
selected = "Choice 2")),
conditionalPanel(
condition = "input.toggle % 2 == 0",
sidebarPanel(radioButtons("otherButtons","Buttons",
choices = list("Choice 1"=1,
"Choice 2"=2)),
radioButtons("moreButtons","Buttons",
choices = list("Choice 1"= 1,
"Choice 2" = 2))
),
"Some Text"
)
)
server<-function(input,output,session){
}
shinyApp(ui,server)
解决方案
也许你可以试试这个。当您在第一个面板中选择选项 1 时,您将无法在第二个面板中选择任何内容。
ui <- fluidPage(
headerPanel("Title"), shinyjs::useShinyjs(),
sidebarPanel(id = "mySideBar",
radioButtons("toggle", "Some Buttons",
choices = list("Choice 1" = 1,
"Choice 2" = 2),
selected = "Choice 2")),
sidebarPanel(id = "mySideBar2",
radioButtons("otherButtons","Buttons",
choices = list("Choice 1"=1,
"Choice 2"=2)),
radioButtons("moreButtons","Buttons",
choices = list("Choice 1"= 1,
"Choice 2" = 2))
)
)
server<-function(input,output,session){
shinyjs::onclick("advanced2",
shinyjs::toggle(id = "advanced2", anim = TRUE))
observeEvent(input$toggle, {
if(input$toggle == "1"){
shinyjs::disable(id = "mySideBar2")
} else {
shinyjs::enable(id = "mySideBar2")
}
})
}
shinyApp(ui,server)
推荐阅读
- python-3.x - python:从一个实例到另一个实例的通用函数调用
- database - 如何在 MongoDB Compass 中查看已创建的数据库
- reactjs - React Hooks 状态未更新视图中的变量
- java - 无法附加到 VM:com.sun.tools.attach.AttachNotSupportedException:未安装提供程序
- filter - 熔体无法加载过滤器和转换 qtblend
- unix - grep 用于文件中的部分字符串
- firebase - 如果没有数据 Flutter Stream,Firestore .where 永远不会返回结果
- sql - 创建具有 2 个主键和两个外键的表,这些表引用 2 个具有相同约束名称的不同表
- ios - ITMS-90424:无效的 Swift 支持 - SwiftSupport 文件夹为空。使用 Xcode 的当前公共 (GM) 版本重新构建您的应用程序并重新提交
- javascript - nodejs中聊天,消息根据聊天中当前用户数重复