gpt4 book ai didi

r - Shiny 的模块不适用于 renderUI

转载 作者:行者123 更新时间:2023-12-04 10:54:08 24 4
gpt4 key购买 nike

我正在使用 renderUI 根据用户对可视化选项的选择来选择性地呈现表格或绘图。我还使用 Shiny 模块在多个选项卡上呈现相同的内容。虽然我已经让 Shiny 模块在另一个应用程序中工作得很好,但我正在努力让它与 renderUI 一起工作。

这是我想出的一小段代码,它显示了两个选项卡上都没有显示任何内容的问题:

myUI <- function(id) {
ns <- NS(id)
fluidRow(
uiOutput(ns('myFinalText'))
)
}

ui <- fluidPage(
tabBox(id = 'myBox', width = 12,
tabPanel('Tab1',
fluidRow(
myUI('tab1')
)),
tabPanel('Tab2',
fluidRow(
myUI('tab2')
))
)
)

myTextFunc <- function(input, output, session, text) {
output$myFinalText <- renderUI({
output$myText <- renderText({text})
textOutput('myText')
})
}

server <- function(input, output, session) {
callModule(myTextFunc, 'tab1', session = session, 'Hello Tab1')
callModule(myTextFunc, 'tab2', session = session, 'Hello Tab2')
}

shinyApp(ui = ui, server = server)

关于我应该做些什么来完成这项工作的任何想法?

如下替换 Shiny 模块 UI 功能和服务器功能使其工作正常。
myUI <- function(id) {
ns <- NS(id)
fluidRow(
textOutput(ns('myFinalText'))
)
}

myTextFunc <- function(input, output, session, text) {
output$myFinalText <- renderText({
text
})
}

最佳答案

您可以从 session 对象中获取命名空间。更改myTextFunc在像这样的初始应用程序中:

myTextFunc <- function(input, output, session, text) {
ns <- session$ns
output$myFinalText <- renderUI({
output$myText <- renderText({text})
textOutput(ns('myText'))
})
}

关于r - Shiny 的模块不适用于 renderUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39273043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com