问题标签 [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 投票
1 回答
35 浏览

r - 其他模块中的闪亮模块

我正在尝试将一些图形模块放在另一个模块中。虽然暂时不工作。我想这不是这样做的方法。关于应该如何做的任何想法?

注意:也发布在这里:https ://community.rstudio.com/t/modules-within-modules-graph-in-other-modules/115160

0 投票
1 回答
145 浏览

r - 如何在闪亮的模块中将值从 ui 传递到服务器

我想将数据(静态)从 ui 传递到闪亮模块中的服务器。对于我正在处理的问题的具体示例,请考虑下面的应用程序。我希望能够使用按钮来旋转无线电输入。但是,因为我没有服务器中的 radioInput 选项,所以我无法使用下一个选项更新 radioInput。

当然有一些可能的解决方案。第一个是将radioInput 选项列表传递给服务器函数。我想避免在 ui 和 server 两个地方传递这些数据。第二个选项是使用 renderUI 并将选择列表从服务器传递到 ui,但鉴于 UI 没有动态方面,这也是不可取的。

有没有一种干净的方法可以将静态数据从 ui 传递到服务器?

0 投票
1 回答
67 浏览

r - 如何使用带有传单地图的嵌套模块

我正在尝试使用shiny模块来构建带有leaflet地图的应用程序。但是,当我运行地图下方的代码时,地图无法正确呈现——它是灰色的。

我想要发生的是用户从侧面板中选择城市并显示地图的相关部分(问题末尾有一个示例,使用标准闪亮来说明)。

我认为可能是用户输入没有在模块之间正确传递,但不知道如何修复它。事实上,如果我将相关位更改为对城市进行硬编码,setView(lng = data[data$pt == "London", "lng"], lat = data[data$pt == "London", "lat"], zoom = 9)那么地图就会呈现。

请提供有关如何使用模块执行此操作的任何提示?这是我使用模块的非工作尝试:

这是一个使用标准闪亮函数的工作示例,它显示了我正在尝试做的事情

0 投票
1 回答
44 浏览

r - 从 Shiny 模块中读取反应元素

我正在尝试使用预定义函数中的一些反应元素,并从模块中调用该数据来生成绘图,但数据在选择时没有得到更新。我也尝试在内部调用函数reactive()并从模块中调用它,但结果仍然相同。我的方法如下:

请注意,数据应该从服务器而不是全局导入,因为它会不断更新。

0 投票
1 回答
183 浏览

r - R Shiny:从模块内更改选项卡

我有一个带有多个选项卡的闪亮应用程序,我想在选项卡中包含允许用户切换选项卡的操作按钮。我找到了以下页面:https://www.titanwolf.org/Network/q/e6b187b8-6cad-4ece-ad16-7ec73ed2f758/y 如何从模块内部在闪亮的标签面板之间切换?,这似乎表明问题是范围/命名空间错误,但他们没有完全解释正在发生的事情,而且我没有足够的声誉点来评论另一个要求澄清的 stackoverflow 帖子。

这是我的示例代码:

编辑以说明新问题

再次编辑 我在一个新问题中提出了这个问题,并得到了回答:闪亮的模块:从具有不同命名空间的模块中切换选项卡

0 投票
2 回答
79 浏览

r - 闪亮的模块:从具有不同命名空间的模块中切换选项卡

我有一个带有多个选项卡的闪亮应用程序,我想在选项卡中包含允许用户切换选项卡的操作按钮。我之前问过这个问题:R Shiny: Change tabs from inside a module 并得到了一个有帮助的答案,但并没有完全解决我的问题。

当我使用同一个id(tab.1)调用modtab1和modtab2时,可以切换tab,但是不区分这两个input$userid;当我使用不同的 id 时,它会区分这两个input$userid,但不允许我切换标签。

0 投票
0 回答
25 浏览

r - R6 类函数未在 Shiny Module 服务器中提供输出

我已将 R6 类定义为全局函数并尝试在模块中使用它。R6 函数是事件响应函数,预计在单击按钮时初始化类中的新元素。尽管代码运行正常,但它并没有创建新元素。

0 投票
1 回答
123 浏览

r - 如何在 Shiny 仪表板中刷新值框时避免闪烁

我使用闪亮的模块来更新大量的值框。烦人的部分是值框似乎没有超过 10 或 20,因为它们的更新会导致烦人的闪烁。即使是那些在下一次失效时其值没有改变的框也会闪烁。理想情况下,如果值未更改,则框不应刷新。

提出了一个使用闪亮模块的有代表性的闪亮应用程序来复制问题。当 N 的值为 4 或 5 时,框的数量很少,并且更新会立即发生。当您将 N 增加到 10 时,它会变得很明显,并且在 N = 20 时,闪烁是无法忍受的。

这是server.R

这是modules.R

请在三个文件中加载三个代码段:ui.R、server.R 和 modules.R。

注意:在 modules.R 中,第一行有一行N <- 4。请将其设置为 20 以查看烦人的闪烁。

0 投票
1 回答
54 浏览

r - 在 Shiny 模块中使用 lapply() 函数构建一个带有多个 tabPanel 的 tabBox,其数量取决于导入的数据

我想构建一个闪亮的模块,将 atabBox的数量tabPanel作为数据的函数呈现。模拟数据(请参见下面的脚本)具有罐或池塘变量(列)(葡萄牙语中的“viveiro”),其数量可以是变量。所以面板的数量是这个变量的函数。但最大的问题是,当tabPanel我在每个内部渲染一个简单的表(带有renderTable())时,它对应于每个“viveiro”(坦克/池塘)的子集。我使用该lapply()函数来构建renderUI和将反应表达式分配给输出(参见下面的适用示例)。nCiclo()是一个反应式,表示可以对应于序列的“viveiro” (您喜欢的坦克/池塘)的数量1:6例如。它lapply()renderUI()for的第一个中运行良好,但是当我在第二个中将它用于下面的输出output$tab_box时它不起作用。lapply()output[[paste0('outCiclo',j)]]renderTable

问题: 如何将最后一个lapply()函数作为模拟数据中“viveiro”(坦克/池塘)数量的函数?我试图替换1:6反应的修复序列nCiclo()但不起作用。

运行脚本的第一个会话时,请注意您在工作目录中获得了一个 excel 文件 (.xlsx),它是要导入应用程序的模拟数据。问题是1:6顺序是固定的,不会因数据而异(面板中未呈现 6 以上的循环),当我替换1:6nCiclo()(尝试自己测试)时(在服务器模块中找到)不起作用。

我不确定我是否说清楚了,或者英语是否可以理解,但我感谢您花时间阅读问题并帮助我学习。

0 投票
1 回答
35 浏览

r - 如何使用闪亮的模块重复更新同一张表

我有一个使用模块的闪亮应用程序。在这个应用程序中,有几个下拉菜单需要在表格中填充选项。第一个下拉列表与第二个下拉列表相关,并提供行过滤器以更改表第二列中第二个下拉列表的值,但是第一个下拉列表中的值不应更改表第一列中的值。

该表应首先自动填充下拉列表的默认值(这些值各不相同,因此不能硬编码)。当应用程序的用户希望在表格中发生更改时,他们将查看选项并单击更新按钮。从这个可重现的例子中看不出来,但在更大的应用程序中,用户需要从他们上次更新的数据中不断更新表,而不仅仅是发送一个完整的数据表来重新填充整个数据。我知道如何使用下拉列表中的值来填充表格一次,但我无法理解如何将表格(或任何对象)存储在某处以便可以连续访问和更新。

如果描述不完全清楚,我希望在初始化时出现这样的表:

默认表

然后,如果我将下拉列表 2 更改为“b”并单击更新表,我希望它看起来像这样:

第一次更新

最后,如果我将下拉菜单 1 更改为“三明治”,然后将下拉菜单 2 更改为“a”并单击更新表,我希望该表如下所示:

最后更新

下面是一个最小示例的代码,在TabButtonServer模块中你会看到我最好的尝试让它工作,但它没有。如上所述,问题的症结是我不知道在更新表时应该如何存储表,以便以后可以再次引用它。我非常感谢有人可以提供的任何帮助。