我想在点击按钮时显示一个框架。我为按钮创建一个mod,为框架创建一个mod。在 mod_button_server 函数中,我调用 mod_frame_server,在那里我创建框架并将其分配给输出
mod_button.R
mod_button_ui <- function(id){ ns <- NS(id); tagList(
actionButton(ns("button"), id) )}
mod_button_server <- function(id){ moduleServer(id, function(input, output, session){ns <- session$ns
observeEvent(input$button, {
print(id)
mod_dataframe_server("table")
})})}
字符串
- mod_frame.R**
mod_dataframe_ui <- function(id){ ns <- NS(id); tagList(
tableOutput(ns("mytable")))}
mod_dataframe_server <- function(id){moduleServer(id, function(input, output,session){ ns <- session$ns;
df <- data.frame(Years = seq(2000, 2009), Colonne2 = rnorm(10), Colonne3 = rnorm(10), Colonne4 = rnorm(10))
output$mytable <- renderTable({df})})}
型
app_ui.R
app_ui <- function(request) {tagList(golem_add_external_resources(),
mod_button_ui("B1"), #mod_button_ui("B2"),
mod_dataframe_ui("table"),
)}
型
app_server.R
app_server <- function(input, output, session) {
mod_button_server("B1") #mod_button_server("B2")}
型
1条答案
按热度按时间apeeds0o1#
选项1
您可以从
mod_dataframe_server
输出一个 Dataframe ,如下所示:字符串
然后可以在
mod_button_server
中访问,如下所示:型
mod_dataframe_ui
可以作为默认的Golem模板,因为它不需要被调用。如果表发生在mod_button_ui
中:型
应用服务器函数与您尝试的相同,
app_ui
看起来像这样:型
选项二
或者,您可以只使用按钮模块并删除框架模块。这意味着
mod_button_server
将在按下按钮时使用observe()
和bindEvent()
来创建和刷新表。mod_button_ui
,app_ui
和app_server
与第一个选项相同。型
工作示例
这实现了上面的选项2。选项1也包括在内,但我已经注解掉了。