【问题标题】:bsModal works with fluidPage but not without itbsModal 适用于 fluidPage 但不能没有它
【发布时间】:2019-08-13 02:44:22
【问题描述】:

我发现 bsModal 使用 fluidPage 可以正常工作,但没有它就不行。只需单击“查看表”按钮即可查看差异。

带有fluidPage的版本:

library(shiny)
library(shinyBS)

shinyApp(
  ui =
    fluidPage(
      sidebarLayout(
        sidebarPanel(
          actionButton("tabBut", "View Table")
        ),

        mainPanel(
          bsModal("modalExample", "Data Table", "tabBut", size = "large",
                  "distTable")
        )
      )
    ),
  server =
    function(input, output, session) {}
)

没有fluidPage的版本,唯一的变化就是fluidPage被tagList代替了:

library(shiny)
library(shinyBS)

shinyApp(
  ui =
    tagList(
      sidebarLayout(
        sidebarPanel(
          actionButton("tabBut", "View Table")
        ),

        mainPanel(
          bsModal("modalExample", "Data Table", "tabBut", size = "large",
                  "distTable")
        )
      )
    ),
  server =
    function(input, output, session) {}
)

谁能帮我解释一下bsModalfluidPage之间发生了什么?

【问题讨论】:

    标签: r shiny shinybs


    【解决方案1】:

    因为fluidPage 不仅仅是一个简单的tagList

    tagList 只是将其参数并将它们连接起来(期望每个参数都是某种 HTML 标记)。 fluidPage 从字面上生成带有引导依赖项的整个 HTML 文档。

    你的第一个例子是比喻“用地下室、平面图和阁楼建造房子”,sidebarLayout 解释楼层的布局,fluidPage 是房子。删除fluidPage,您将尝试建造一个有地下室、平面图和阁楼的房子,但没有地基、墙壁或屋顶。

    【讨论】:

    • 是不是说fluidPage会加载所有bsModal的依赖?想知道具体的依赖是什么?
    • fluidPage 不知道其子项的依赖关系,因此它不会加载bsModals。 bsModal 加载自己的依赖项。尝试在 R 控制台中键入 fluidPagetagListbsModal(不带括号)以查看它们的定义并查找 attachDependencies。对于某些函数,您可能需要查找它们调用的函数以避开它们的内部工作原理。
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多