Shiny - Как отключить пользовательский ввод в numericInput, используемом в uiOutput - PullRequest
0 голосов
/ 19 октября 2018

мой код: -

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 голосов
/ 19 октября 2018

Да, мы можем использовать 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

...