2017-10-11 35 views
-1

这应该很简单,但它不像我预期的那样工作。我所要做的就是在从主服务器功能向模块传递无功元素时获得“第一光”。这个玩具示例的要点很简单:用户在textInput()框中键入任何内容,并将该值显示在两个verbatimTextOutput()框中,一个来自主服务器,另一个来自模块服务器。我正在寻找这两个框来显示用户键入的内容,但模块框不显示。这告诉我模块没有正确接收参数,我没有看到我的错误。谢谢!R Shiny:发送反应值到模块

library(shiny) 

ui <- function(request) { 
    fluidPage(
     column(12, textInput("par", "Parameter", value = "")), 
     column(12, parametersMDUI(0)), 
     column(12, verbatimTextOutput("view", placeholder = TRUE)) 
     ) 
} 

server <- function(input, output, session) { 
    param <- reactive({ input$par }) 
    callModule(parametersMDServer, 0, param) 
    output$view <- renderText({ param() }) 
} 


parametersMDUI <- function(id) { 
    ns <- NS(id) 

    tags$div(
     column(12, verbatimTextOutput("symbolName", placeholder = TRUE)), 
     id = ns('parametersMDui') 
    ) 
} 


parametersMDServer <- function(input, output, session, param) { 
    ns = session$ns 

    output$symbolName <- renderText({ param }) 
} 

shinyApp(ui = ui, server = server, enableBookmarking = "server") 

回答

0

好像你在代码中使用tags$div(..., id = "my_output_id"),然后尝试renderUI访问DIV?这不起作用。使用“标准”

# server side 
output$my_output_id <- renderUI({ ... }) 

# client side 
uiOutput("my_output_id") 

改为。除此之外,您忘记使用parametersMDUI中的ns功能。我不会再发布任何固定版本的代码,因为你的错误开始重复,你真的需要能够自己发现它们。

相关问题