从MainPanel切换到Tabset视图时,Shiny中的文本输入无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从MainPanel切换到Tabset视图时,Shiny中的文本输入无效相关的知识,希望对你有一定的参考价值。

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

长子。 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'

有什么我想念的吗?

答案

您必须将内容放在调用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)))
        )
      )
    )
  )
)

以上是关于从MainPanel切换到Tabset视图时,Shiny中的文本输入无效的主要内容,如果未能解决你的问题,请参考以下文章

切换到另一个视图控制器时,如何保持标签栏可见? [关闭]

单击按钮时如何将文本视图从一件事切换到另一件事 - Android

从视图 1 切换到蓝牙设置..不可能?

如何根据 Shiny R 中的用户选择在 MainPanel 中显示数据?

如何使用按钮从集合视图(网格视图)切换到表格视图(列表视图)?

在两个视图之间切换以及从纵向切换到横向时出现 iPad 方向问题,反之亦然