【问题标题】:Multiple conditions in condition panel R shiny条件面板 R 中的多个条件闪亮
【发布时间】:2018-08-30 20:06:51
【问题描述】:

在闪亮的应用程序中使用条件面板时是否可以有多个条件?我想为几个选项卡隐藏一个特定的 UI 组件。以下是我正在尝试的,但当我有多个条件时它似乎并不适用:

library(shiny)
library(shinyWidgets)
library(shinydashboard)
library(DT)

sidebar <- dashboardSidebar(
  sidebarMenu(id = "tab",
              menuItem("1", tabName = "1"),
              menuItem("2", tabName = "2"),
              menuItem("3", tabName = "3")
  )
)
body <-   ## Body content
  dashboardBody(box(width = 12,fluidRow(
    fluidRow(  column(
      width = 3,  textInput("text1", label = h5("Min"), value = "1")),
      column(
        width = 3, textInput("text2", label = h5("Max"), value = "2")),
      conditionalPanel(
        condition = "input.tab !== '2' || input.tab !== '3'" , column(
        width = 3, textInput("text3", label = h5("Max"), value = "3"))),
      column(
        width = 3, textInput("text4", label = h5("Max"), value = "4")))

  )))

ui <-   dashboardPage(dashboardHeader(title = "Scorecard"),
                      sidebar,
                      body)

# Define the server code
server <- function(input, output,session) {

  output$op <-renderDataTable({
    df_format()
  })

}

shinyApp(ui = ui, server = server)

【问题讨论】:

  • 重复的问题有两个单独的输入。在我的问题中两者都是相同的。
  • 我明白你在说什么,但是条件来自哪里并不重要:可以使用该语法将多个条件写入条件面板。如果它仍然无法正常工作,可能还有另一个问题 - 一个可重现的示例将有助于 id。
  • 刚刚添加了一个可重现的例子
  • condition = "input.tab !== '2' &amp;&amp; input.tab !== '3'" 导致条件面板,因为只有 3 个面板。你写东西的方式,条件总是TRUE。您的问题是使用 OR 运算符而不是多个条件的逻辑之一。

标签: r shiny


【解决方案1】:

正如@RyanMorton 所说,问题是你使用了OR,而你应该使用AND

condition = "input.tab !== '2' || input.tab !== '3'"

TRUE @当标签不是2或不是3,始终是。通过将其更改为:

condition = "input.tab !== '2' & input.tab !== '3'"

将选项卡更改为 2 或 3 足以使声明 FALSE 并隐藏选项卡

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2016-06-30
    • 2014-03-03
    • 2021-04-06
    • 2019-07-26
    • 2021-11-05
    相关资源
    最近更新 更多