我想在一个页面上有可变数量的相同 actionButton()s,全部由一个 observeEvent() 函数处理。
例如,在表格的可变长度表格中,我希望每个内部表格都有一个按钮,链接到该表格的更多信息。
在标准 HTML 中,您可以使用一个简单的表单来完成此操作,您可以在其中使用隐藏的输入来指定内部表格编号,如下所示:
<form ...>
<input id="table_number" type="hidden" value="1"/>
<input type="submit" value="Examine"/>
</form>
Run Code Online (Sandbox Code Playgroud)
当按下按钮时,您可以检查隐藏的输入以查看它是哪一个。
有没有办法在 Shiny 中做到这一点?我想出的唯一解决方案是给每个 actionButton() 自己的 inputId。这需要为每个按钮单独使用observeEvent()。那些必须提前创建,施加最大数量的按钮。
3D0*_*D0G 10
我只花了几年时间,但现在我对这个问题有了更好的答案。您可以使用 JavaScript/jQuery 函数在文档中的每个按钮上放置一个点击事件处理程序,然后使用Shiny.onInputChange()函数将<button id="xxx"...已单击的按钮 ( )的 ID 传递给单个观察者你的闪亮代码。
使用 JavaScript/jQuery 在 Shiny 中的所有按钮的一个观察者中有一个完整的描述和代码示例