本文介绍了如何将闪亮模块的返回值存储在reactiveValues中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
版本1下面是一个玩具模块,它要求用户输入txt
,并将输入返回到主要闪亮的应用程序。然后,主闪亮应用程序呈现文本并将其输出到屏幕。
在这里,我将模块的返回值存储在一个名为mytxt
的变量中,并通过renderText({ mytxt() })
调用它。
但是,我真正想做的是将返回值存储到主闪亮应用程序中的reactiveValues。(我是否输出它并不重要,因为我想对该值做进一步的评估。)但遗憾的是,我找不到办法让它发挥作用。我在下面的版本2中显示失败的代码。
版本1(正确)
附录R
library(shiny)
source("module_1.R")
ui <- fluidPage(
returnUI("returntxt"),
textOutput("mytxt")
)
server <- function(input, output, session) {
mytxt <- callModule(returnServer, "returntxt")
output$mytxt <- renderText({ mytxt() })
}
shinyApp(ui, server)
MODULE_1.R
returnUI = function(id) {
ns <- NS(id)
tagList(
textInput(ns("txt"), "Write something")
)
}
returnServer = function(input, output, session) {
mytxt <- reactive({
input$txt
})
return(mytxt)
}
版本2(需要帮助!)
附录R
library(shiny)
source("modules/module_1.R")
ui <- fluidPage(
returnUI("returntxt"),
textOutput("mytxt")
)
server <- function(input, output, session) {
myvals <- reactiveValues(
txt = NULL
)
mytxt <- callModule(returnServer, "returntxt")
myvals$txt <- isolate(mytxt())
output$mytxt <- renderText({ myvals$txt })
}
shinyApp(ui, server)
module e.R与版本1相同。
推荐答案
我刚从模块返回reactiveValues
找到答案,并使用observe
:)呼呼!
附录R
library(shiny)
source("modules/module_1.R")
ui <- fluidPage(
returnUI("returntxt"),
textOutput("mytxt")
)
server <- function(input, output, session) {
myvals <- reactiveValues(
txt = NULL
)
mytxt <- callModule(returnServer, "returntxt")
observe({
myvals$txt <- mytxt$txt
print(myvals$txt)
})
output$mytxt <- renderText({ myvals$txt })
}
shinyApp(ui, server)
MODULE_1.R
returnUI = function(id) {
ns <- NS(id)
tagList(
textInput(ns("txt"), "Write something")
)
}
returnServer = function(input, output, session) {
myreturn <- reactiveValues()
observe({ myreturn$txt <- input$txt })
return(myreturn)
}
这篇关于如何将闪亮模块的返回值存储在reactiveValues中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!