R:如何保存模块返回的值?
我有一个简单的闪亮模块,我想从两个滑块输入中获得总和: 模块代码为: 模块R:如何保存模块返回的值?,r,shiny,shiny-reactivity,R,Shiny,Shiny Reactivity,我有一个简单的闪亮模块,我想从两个滑块输入中获得总和: 模块代码为: 模块 custSliderGroupInput <- function(id,slider1Name,slider2Name){ ns <- NS(id) tagList(sliderInput(ns("slider1"),slider1Name,1,100,50), sliderInput(ns("slider2"),slider2Name,1,20,10)) } cus
custSliderGroupInput <- function(id,slider1Name,slider2Name){
ns <- NS(id)
tagList(sliderInput(ns("slider1"),slider1Name,1,100,50),
sliderInput(ns("slider2"),slider2Name,1,20,10))
}
custSliderGroup <- function(input,output,session){
rv <- reactiveVal()
observeEvent(c(input$slider1,input$slider2),{
rv <- reactive({input$slider1 + input$slider2})
print(rv())
return(list(result = rv()))
})
}
我在Google和StackOverflow上搜索过,但所有的解决方案都不起作用
消息确实会在控制台中打印:但在UI上没有显示任何内容:
我通过这样做解决了这个问题: 模块:
custSliderGroupInput <- function(id,slider1Name,slider2Name){
ns <- NS(id)
tagList(sliderInput(ns("slider1"),slider1Name,1,100,50),
sliderInput(ns("slider2"),slider2Name,1,20,10))
}
custSliderGroup <- function(input,output,session){
rv <- input$slider1 + input$slider2
return(rv)
}
custSliderGroupInput我通过这样做解决了这个问题:
模块:
custSliderGroupInput <- function(id,slider1Name,slider2Name){
ns <- NS(id)
tagList(sliderInput(ns("slider1"),slider1Name,1,100,50),
sliderInput(ns("slider2"),slider2Name,1,20,10))
}
custSliderGroup <- function(input,output,session){
rv <- input$slider1 + input$slider2
return(rv)
}
custSliderGroupInput这可能会有帮助:谢谢。我试图在该解决方案中使用模板修改我现有的编码。但它仍然不起作用。由于值打印到控制台,因此应正确触发callModule。但问题是这些值无法传递给textOutput。这可能会有帮助:谢谢。我试图在该解决方案中使用模板修改我现有的编码。但它仍然不起作用。由于值打印到控制台,因此应正确触发callModule。但问题是这些值无法传递给textOutput。我只是想回答你,但很好,你解决了这个问题。您遇到了麻烦,因为存在用于捕获副作用的ObserveEvent。如果要返回值,请始终使用EventResponsive。非常感谢。我刚试过EventResponse,效果很好。很好,我知道不是那么直观。我还多次遇到绘图渲染问题,因为我使用了错误的绘图:-)我只是想回答你,但很好,你解决了它。您遇到了麻烦,因为存在用于捕获副作用的ObserveEvent。如果要返回值,请始终使用EventResponsive。非常感谢。我刚试过EventResponse,效果很好。很好,我知道不是那么直观。我在多次渲染绘图时也遇到问题,因为我使用了错误的绘图:-)
ui <- fluidPage(
custSliderGroupInput("myslider","A","B"),
textOutput("text")
)
server <- function(input, output,session){
output$text <- renderText({
callModule(custSliderGroup,"myslider")
})
}
shinyApp(ui = ui, server = server)