温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - Button to close modal throws an error: `$ operator is invalid for atomic vectors`
r shiny

r - 关闭模态的按钮抛出错误:`$运算符对于原子向量无效。

发布于 2020-03-29 21:57:13

当用户启动应用程序时,我想显示一个模式。为此,我使用了这个答案但是,当单击应该关闭模态的按钮时,出现错误:

警告:错误:$运算符对原子向量无效

显然,此错误是由于某种原因造成的,observeEvent但我无法弄清楚该错误是什么。我该如何解决?

可重现的示例:

library(shiny)
library(shinyBS)

popup <- bsModalNoClose("window", "Window",
                        title="Click 'Choice 1' to close the popup", size='small',
                        actionButton('choice1', 'Choice 1', class = 'btn action-button btn-success'),
                        actionButton('choice2', 'Choice 2', class = 'btn action-button btn-success'),
                        tags$head(tags$style("#window .modal-footer{display:none}
                                       .modal-header"),
                                  tags$script("$(document).ready(function(){
                                        $('#window').modal();
                                        });")
                        ))

ui <- shinyUI(fluidPage(
  popup
))

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

  observeEvent(input$choice1, {
    toggleModal(session = "session",
                modalId = "window",
                toggle = "close")
  })

})
shinyApp(ui, server)

查看更多

提问者
bretauv
被浏览
35
Freakazoid 2020-01-31 19:05

toggleModal函数在会话参数中需要实际的会话函数,而不是字符串“ session”。您可能会从这里注意到

toggleModal(session=session,
            modalId="window",
            toggle="close")