Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-编写包含反应组件的辅助函数_R_Shiny - Fatal编程技术网

R-编写包含反应组件的辅助函数

R-编写包含反应组件的辅助函数,r,shiny,R,Shiny,下面的应用程序包含英文字母表的selectInput和idletters\notif的隐藏警报,如果用户选择字母B,则通知用户。我希望字母\u notif在用户选择B时可见: …并以其他方式隐藏: 以非功能性的方式,您可以将您正在做的事情写在下面: library(shiny) library(shinyjs) shinyApp( ui = fluidPage( useShinyjs(), selectInput('letters', 'Choose a letter:

下面的应用程序包含英文字母表的
selectInput
和id
letters\notif
的隐藏警报,如果用户选择字母
B
,则通知用户。我希望
字母\u notif
在用户选择
B
时可见:

…并以其他方式隐藏:


以非功能性的方式,您可以将您正在做的事情写在下面:

library(shiny)
library(shinyjs)

shinyApp(
  ui = fluidPage(
    useShinyjs(),
    selectInput('letters', 'Choose a letter:', LETTERS),
    hidden(tags$p(id = 'letters_notif', 'B is not allowed.'))
  ),

  server = function(input, output, session) {    

    observeEvent(input$letters, {

      if(input[["letters"]] == 'B') {

        observe(toggle('letters_notif', condition = input[["letters"]] == 'B'))

      } else input[["letters"]]

    })

  }
)
如果从上面将整个
observeEvent
转换为函数,则无需将
session
作为参数传递

library(shiny)
library(shinyjs)

chooseLetter <- function(id, input) {

  observeEvent(input[[id]], {

  if(input[[id]] == 'B') {

  observe(toggle(paste0(id, '_notif'), condition = input[[id]] == 'B'))

  } else input[[id]]

   })
}

shinyApp(
  ui = fluidPage(
    useShinyjs(),
    selectInput('letters', 'Choose a letter:', LETTERS),
    hidden(tags$p(id = 'letters_notif', 'B is not allowed.'))
  ),

  server = function(input, output, session) {    

   chooseLetter(id = 'letters', input = input)

  }
)
库(闪亮)
图书馆(shinyjs)
选择者
library(shiny)
library(shinyjs)

shinyApp(
  ui = fluidPage(
    useShinyjs(),
    selectInput('letters', 'Choose a letter:', LETTERS),
    hidden(tags$p(id = 'letters_notif', 'B is not allowed.'))
  ),

  server = function(input, output, session) {    

    observeEvent(input$letters, {

      if(input[["letters"]] == 'B') {

        observe(toggle('letters_notif', condition = input[["letters"]] == 'B'))

      } else input[["letters"]]

    })

  }
)
library(shiny)
library(shinyjs)

chooseLetter <- function(id, input) {

  observeEvent(input[[id]], {

  if(input[[id]] == 'B') {

  observe(toggle(paste0(id, '_notif'), condition = input[[id]] == 'B'))

  } else input[[id]]

   })
}

shinyApp(
  ui = fluidPage(
    useShinyjs(),
    selectInput('letters', 'Choose a letter:', LETTERS),
    hidden(tags$p(id = 'letters_notif', 'B is not allowed.'))
  ),

  server = function(input, output, session) {    

   chooseLetter(id = 'letters', input = input)

  }
)