【问题标题】:Text input in Shiny is not working when switching from MainPanel to Tabset views从 MainPanel 切换到 Tabset 视图时,Shiny 中的文本输入不起作用
【发布时间】:2018-08-13 14:08:54
【问题描述】:

我有一个闪亮的应用程序,它接受文本输入并将其显示在主面板上(我使用this 答案构建它):

ui.r:

library(shiny)

shinyUI(fluidPage(

    titlePanel("This is a test"),

    sidebarLayout(
      sidebarPanel(
          textInput("text1", "Enter the text", ""),
          actionButton("goButton", "Go")
    ),

      mainPanel(
         h3(textOutput("text1", container = span))
            )
           )
          )
         )

server.r:

shinyServer(function(input, output) {

  cap <- eventReactive(input$goButton, {
    input$text1
  })

  output$text1 <- renderText({
    cap()
  })

})

在我决定添加一个 Tabset 面板并在其中一个选项卡上显示输入之前,它工作得很好。我将 ui.r 中的 mainPanel() 修改为:

mainPanel(
  tabsetPanel(type = "tabs",
              tabPanel("t1"), 
              tabPanel("t2", 
              tabPanel("t3"), h3(textOutput("text1", container = span)),
        )
      )

进行此更改后,启动应用时出现错误:

ERROR: cannot coerce type 'closure' to vector of type 'character'

我有什么遗漏吗?

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您必须将内容放在对tabPanel 的调用中的选项卡中。例如:

    mainPanel(
      tabsetPanel(
        type = "tabs",
        tabPanel("t1"), 
        tabPanel("t2"), 
        tabPanel("t3", h3(textOutput("text1", container = span)))
      )
    )
    

    因此,server.R 与您的问题保持不变,而 ui.R 变为:

    library(shiny)
    
    shinyUI(
      fluidPage(
        titlePanel("This is a test"),
        sidebarLayout(
          sidebarPanel(
            textInput("text1", "Enter the text", ""),
            actionButton("goButton", "Go")
           ),
          mainPanel(
            tabsetPanel(
              type = "tabs",
              tabPanel("t1"), 
              tabPanel("t2"), 
              tabPanel("t3", h3(textOutput("text1", container = span)))
            )
          )
        )
      )
    )
    

    【讨论】:

    • 这是一个html标签
    • 很抱歉,我的回答中多了一个逗号。它现在应该可以工作了。
    • 有趣的是,我完全复制了您的代码,并且它在我的终端上运行良好。尝试重新启动 R。您的环境中可能有一些问题是罪魁祸首。让我知道是否可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2020-07-09
    • 2013-06-10
    相关资源
    最近更新 更多