问题标签 [shinymodules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
615 浏览

r - 闪亮的模块:如果服务器功能失败,则销毁模块 ui

如果模块服务器功能失败,如何显示空白 UI(或者销毁模块 UI),而不将所有 UI 代码移动到服务器功能?

简单的可重现示例:

我目前的解决方案是只有一个uiOutput()inmy_module_ui并在服务器函数中渲染整个 ui。我想防止这种情况发生,因为如果所有 UI 组件都放在模块服务器功能中,大型模块会变得非常混乱。

此外,我还希望避免从callModule()破坏 UI 的返回值,而是从服务器函数中执行此操作。

谢谢!

0 投票
1 回答
187 浏览

r - 模块化 Shiny 应用程序:CSV 和图表模块

我想创建一个模块化的 Shiny 应用程序,其中一个模块 ,dataUpload用于导入 CSV,另一个模块 ,chart用于

  1. 根据 CSV 中的列名创建动态 x 和 y 下拉列表
  2. 根据选定的 input$xaxis, input$yaxis 创建一个绘图这会在向量分配中产生错误 invalid type/length (symbol/0)

我认为问题出在我在 chart.R 中的反应式 ggplot 上,我希望得到任何帮助 - 我在这里添加了所有信息,但我也有一个 github 存储库,如果这更容易的话,我认为这可能是一个非常棒的演示交互模块,所以我真的很感激任何帮助!

应用程序

数据上传.R

数据上传UI.R

图表.R

我相信这是需要一些小改动才能正确渲染情节的文件?

图表UI.R

0 投票
1 回答
411 浏览

shiny - 带有嵌套模块的 bs4Dash 中未显示闪亮的输出元素

编辑:该bs4Dash软件包的作者 David Granjon 最近提供了对下面引用的 Github 问题中提出的问题的回答并将其关闭。

  1. 我的问题很可能与github repo中的这个问题bs4Dash有关,但那里没有提供答案。
  2. 完整的可重现代码在问题的末尾

我的目标

我正在制作一个模块化的 Shiny 应用程序,并试图用这个bs4Dash包来做。这是应用程序的样子:

图片1

该应用程序

最终应用程序有几个部分(我只为这个例子做了介绍),每个部分至少包含一个bs4TabCard. 上图中的tabcard有一个uiOutput和一个rhandsontableOutput元素,在服务端函数中渲染。请注意,这些都是***Output元素。在图 1的可重现代码中(您可以在问题末尾找到),我不使用任何模块。但是,我的目标是使用多个模块,因为应用程序有可能变得非常大。对于这个简单的示例,我尝试使用两个模块:每个部分(即 each bs4TabItem)一个模块,每个标签卡一个模块。这意味着这两个模块将始终嵌套:tabcard 模块将位于 section 模块内。

图二

在应用程序中显示模块

问题

问题是当我实现模块时,***Output不显示元素:

图三

有问题的模块化应用程序

令人惊讶的是***Input显示元素。我制作了第三个包含numericInputonly 的模块并将其放在标签卡的第二个标签中。下图显示numericInput显示没有问题:

图4

模块化应用程序与输入元素一起使用

我做了我的功课

在这个问题中,报告了一个类似的问题,但没有提供任何解决方案,我的挖掘证明是不成功的。当一个输出元素被放置在bs4Dash.

可重现的代码

图 1 的可重现代码

图 3 和图 4 的可重现代码

0 投票
1 回答
517 浏览

r - 闪亮的模块:如何使用 DT::datatables 访问 selected_rows?

当使用闪亮的模块和 DT::datatable 我想访问 selected_rows 服务器端。如果我的 DT:datatable ID 是,my_DT_table那么我希望该对象input$my_DT_table_selected_rows包含所选行的索引。这在没有模块的闪亮应用程序中非常有效。

但是,如果我使用模块,那么这种方法不再有效,输入对象input$my_DT_table_selected_rows不再包含所选行的索引。

0 投票
1 回答
34 浏览

r - 通过闪亮但在外部的渲染图传递图像对象

我有一个闪亮的应用程序,它使用fileInputmagick读取用户选择的图像,并将其显示为 ggplot。

但是,我想将读取图像的逻辑与绘制图像的逻辑分开。我尝试将image_read其放入内部observeEvent,但这引发了错误The 'image' argument is not a magick image object.

我知道当我class(myplot)在 中打印时observeEvent,它会返回一个magick-image对象,那么在我尝试访问时发生了什么变化active_image

0 投票
2 回答
863 浏览

r - Shiny 模块之间的通信

我在闪亮中创建了一个应用程序(用于说明的精简示例),其中包含一个通信无法正常工作的模块。

用户界面应通过单击“加载”按钮创建一些数据(DataPack)(list到目前为止有两个元素)。然后应通过模块绘制数据,而每个模块绘图的 x 轴范围应由sliderInputui 的 a 控制。

即使创建的数据绘制正确(仅在第一次运行时),这里是我面临的特殊问题:

  • 我假设restarting interrupted promise evaluation警告正在创建时DataPack尚未创建或传递给模块。因此,我理解Datapack尚未创建但第一次单击“加载”按钮后的警告。有没有办法避免这种情况?这种行为从何而来?
  • DataPack通过单击“加载”按钮创建了一些数据n(但是,初始值集value = c(0, 150)(为什么?
  • 该应用程序在第一次运行后停止,不再可能再次单击“加载”按钮。为什么?

比你!

0 投票
1 回答
100 浏览

r - 使用 lapply 和 insertUI 的重复闪亮模块的顺序

我创建了一个(出于演示目的可重现的)闪亮的应用程序,其中用户界面DataPack通过单击“加载”按钮创建了一些数据()(包含两个元素的列表)。该列表的每个元素都是通过函数中使用的模块绘制lapplyserver

该应用程序有效,但是,绘图以相反的顺序出现(DataPack$twornorm(n)^2之前DataPack$onernorm(n)),但预计将显示为称为(lapply(names(DataPack()), function(DataSetName) {...}))。如何以完全给定的顺序修复此/重复调用模块,该行为的解释是什么?

0 投票
1 回答
183 浏览

r - 从模块返回输入列表的值

我有一个模块,在其中我根据反应值创建输入列表:如果此值为 3,则textInput创建 3 s,等等。直到现在,当我需要从模块返回输入/值时,我列出了所有我的模块部分return()末尾的输入/值(有关更多详细信息,请参阅本文)。server

但在这种情况下,由于输入的数量不是恒定的,我无法在return(). 因此,我想创建一个可以返回的反应列表。

考虑下面的例子:

在这个例子中,点击“create ui”会生成一个textInputs 列表。请注意,这里textInput创建的 s 数量是恒定的(我想举个简单的例子,在要创建的输入数量中添加一些反应性并不是很有用)。

预期结果:生成textInputs 列表后,用户可以修改其中的值并在完成后单击“更改输入”。然后,模块应将textInputs 中的值作为向量返回。verbatimTextOutput只是在这里验证这些值是否被很好地返回。请注意,答案应该适用于任意数量的textInputs (这就是我尝试列表和循环的原因)。

还在Rstudio 社区上提问

0 投票
1 回答
495 浏览

r - 在主 APP 中使用 renderUI 或 InsertUI 时,闪亮模块服务器中的输入未更新

我的应用程序既可以自动生成 UI,也可以手动添加 ui。我在主应用程序中使用了 renderUI 和 InsertUI 来调用闪亮的模块。

即使在模块服务器中使用 renderUI 函数,闪亮模块的正常用例也能很好地更新我的值。但是当我通过调用 insertUI 和 renderUI 函数生成闪亮的模块时,输入值(selectInput,numericInput)没有更新。我不明白这是什么原因,谁能回答我的问题。

这是我的可行代码

观察闪亮模块更新输入的问题

闪亮模块的正常用例(更新工作)

0 投票
1 回答
329 浏览

r - 数据未传递到模块化闪亮 tabPanel/navbarPage 内的模块

我的可重现闪亮应用程序创建了一些数据,这些数据应通过使用lapply. 因此,它包含主应用程序、模块化的Page_ui/Page_serverModule_ui/ Module_server

tabPanel当它没有在/中实现时,它作为一个独立的应用程序工作navbarPage。然而,在后一种设置中,数据是创建的(可以通过message代码的输出观察到),但不会通过绘图模块传递。为什么?

详细零件:

  1. 主应用程序,navbarPageui和调用server

  2. (和)的模块化页面 ( tabPanel)通过单击“加载”按钮创建一些数据 ( ,一个包含三个元素的列表),并通过(受Thomas Roh示例的启发) 调用绘图模块。navbarPagePage_uiPage_serverDataPacklapply

  3. 绘图模块 (Module_uiModule_server) 用于绘制每个列表元素,DataPack并在绘图模块 ( ) 中创建一些统计信息AnalysedPack

包装在 a 中时代码不起作用navbarPage

该代码在未包含在 a 中时有效navbarPage(设置段落以便逐行与上面有问题的代码进行比较):

为了完整起见,代码在顺序调用模块时也可以正常工作(不带lapply):