闪亮-如何在uiOutput中使用的numericInput中禁用用户输入

时间:2018-10-19 07:10:24

标签: shiny shiny-reactivity

我的代码:-

library(shiny)

ui <- fluidPage(
    titlePanel("Find square of x"),
    numericInput("x","x:",5),
    uiOutput("y")
)

server <- function(input, output){
     output$y <- renderUI({
          numericInput("y","Square of x:",input$x * input$x)
     })
}

shinyApp(ui = ui, server = server)

在此应用中,用户可以更改输出"Square of x"的值。有什么方法可以防止这种情况发生(意味着可以在输出中禁用用户输入)。

或者诸如用户修改输出"Square of x"而不是输入"x"之类的东西也会得到相应的更改。

1 个答案:

答案 0 :(得分:2)

是的,我们可以使用shinyjs

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  titlePanel("Find square of x"),
  numericInput("x","x:",5),
  numericInput("y","Square of x:",NULL)
)

server <- function(input, output,session){

  observeEvent(input$x,{
    updateNumericInput(session, "y", value = input$x * input$x)
    disable("y")
  })

}

shinyApp(ui = ui, server = server)

enter image description here