R ShinyAce: неактивный флажок Input - PullRequest
0 голосов
/ 03 июля 2019

Я пишу приложение Shiny с ShinyAce для отображения реактивного кода.Я использовал первый пример https://trestletech.github.io/shinyAce/ в качестве основы для моего кода, но у меня есть проблема, связанная с реактивным checkboxInput.

Я хотел бы реактивно отобразить некоторый код: например, если я поставлю галочку, затем появляется некоторый код, и если я сниму галочку, код возвращается к нормальному состоянию.Это работает с actionButton (см. Пример на веб-сайте), но я не могу понять, почему это не с checkboxInput.

Вот воспроизводимый пример:

library(shiny)
library(shinyAce)

init <- "first text"

ui <- shinyUI(
  pageWithSidebar(
    headerPanel(""),
    sidebarPanel(
      actionButton("reset", "Reset"),
      checkboxInput("test", "Test", FALSE)
    ),
    mainPanel(
      aceEditor(
        outputId = "ace",
        selectionId = init
      )
    )
  )
)

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

  observe({
    cat(input$ace, "\n")
  })

  observeEvent(input$reset, {
    updateAceEditor(session, "ace", value = init)
  })

  observeEvent(input$test, {
    updateAceEditor(session, "ace", value = "Second text")
  })

})

shinyApp(ui = ui, server = server)

1 Ответ

1 голос
/ 03 июля 2019

Это слегка измененная версия вашего ответа. Я использую логический результат ввода флажка для условного обновления редактора Ace.

init <- "first text"

ui <- shinyUI(
  pageWithSidebar(
    headerPanel(""),
    sidebarPanel(
      actionButton("reset", "Reset"),
      checkboxInput("test", "Test", FALSE)
    ),
    mainPanel(
      aceEditor(
        outputId = "ace",
        value = init
      )
    )
  )
)

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

  observe({
    cat(input$ace, "\n")
     print(input$test)
  })

  observe({
    if(input$test){
      updateAceEditor(session, "ace", value = "Second text")
      } else {
      updateAceEditor(session, "ace", value = init)
    }})

  observeEvent(input$reset, {
    updateAceEditor(session, "ace", value = init)
   })

  })

shinyApp(ui = ui, server = server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...