R Shiny中的问题,使用时
- 渲染界面
- ui输出
动态生成控件集,例如:
- 复选框
- 单选按钮
- 文本框
如何通过引发事件来获取这些值或填充输入?
照原样,那些生成的控件似乎是“仅显示”。进行选择、标记复选框或输入数据只会更新显示,但不会创建事件,并且不会将值填充到“输入”变量( ReactiveValues )中;因此,Shiny 服务器进程没有收到任何内容。
如果这些控制输入实际上是隔离的,那么它完全破坏了动态创建控制的意义。
显然,我希望这个问题已经得到解决,但我的搜索还没有出现。
在我的具体情况下,用户界面允许用户:
- 选择并上传 CSV 文件。
- 该逻辑识别数字、日期和分组列,并生成 3 组单选按钮控件集。这个想法是你选择你感兴趣的列。
- 选择一个分组列应该将该 columnID 返回到服务器,在那里它将显示一个离散的组列表,从中进行选择。这会失败,因为选择不会生成事件,并且输入变量(提供给 server.R)仅包含来自静态控件的 ReactiveValues。
也就是说,控件的显示看起来不错。
在 server.R 端,我使用如下代码来创建单选按钮。
output$radioChoices <- reactive({
...
inputGroup <- renderUI({
input_list <- tagList(
radioButtons(inputId = "choiceGrp", label = "Available Grouping Columns", choices = grpColumnNames, inline = TRUE, selected = selectedGrp),
radioButtons(inputId = "choiceNumb",label = "Available Numerical Columns",choices = numColumnNames, inline = TRUE, selected = selectedNum),
radioButtons(inputId = "choiceDate",label = "Available Date Columns", choices = dateColumnNames, inline = TRUE, selected = selectedDate),
hr()
)
do.call(tagList, input_list)
})
print(inputGroup)
output$radioChoices <- inputGroup
})
我玩过提交按钮和 ActionButtons 来尝试强制事件,但没有骰子。我的头骨风暴现在要去“我需要在这里以某种方式使用 Javascript 吗?”之类的地方。
非常感谢所有在这件事上借给我周期的人。