如何在全局中使用反应式全局变量.R 在 R 闪亮



我在闪亮的应用程序里有ui.Rserver.Rglobal.R

我想在选择dataset并按actionButton时使用反应式全局变量。

例:

用户界面。R

fluidPage(
titlePanel("Using global variable"),
fluidRow(
uiOutput("ui1"),
uiOutput("ui2"),
uiOutput("ui3")
),
)
)

服务器。R

function(input, output) {
output$ui1 <- renderUI({
selectInput("dataset", "firstValue", choices = c("first", "second", "third")   
})
output$ui2 <- renderUI({
actionButton("doIt", class="btn-primary", "change")
})
output$ui3 <- renderText({
paste(catPath)
})
}

全球。R

catPath <<- paste(output$dataset, "/completed", sep="")

结果在ui3 renderTextfirst/completed,当我在dataset中选择first时,按actionButton

如何完成此过程?

我同意@JohnPaul和@Lee88,您的catPath可能属于server.R。话虽如此,我现在把它留在这里(假设你在MWE中有其他原因)。

global.R

catPath <- ""

我需要将其设置为某些内容以便以后可以引用,否则此处使用的值应该毫无意义(尽管如果不采取任何操作,它将返回)。

ui.R

我添加了一个"停止?"操作按钮,以便您可以"退出"您的应用程序并将catPath的价值捕获到调用环境中。如果您不打算有意退出应用,则不需要。

fluidPage(
titlePanel("Using global variable"),
fluidRow(
uiOutput("ui1"),
uiOutput("ui2"),
uiOutput("ui3"),
actionButton("stopme", "Stop?")
)
)

server.R

我更改了output$ui3以创建 HTML 对象(不执行计算),然后观察两个事件并对其执行操作。同样,如果你不需要上面的"停止?"按钮,你可能不需要这里的第二个观察。(如果您确实使用它,请注意,要stopApp的参数将不可见地返回给调用方。

function(input, output, session) {
output$ui1 <- renderUI({
selectInput("dataset", "firstValue", choices = c("first", "second", "third"))
})
output$ui2 <- renderUI({
actionButton("doIt", class="btn-primary", "change")
})
output$ui3 <- renderUI({
textInput("myinput", "catPath", "")
})
observeEvent(input$doIt, {
catPath <<- paste(input$dataset, "/completed", sep = "")
updateTextInput(session, inputId = "myinput", value = catPath)
})
observeEvent(input$stopme, { stopApp(catPath); })
}

做一些类似newCatPath <- runApp("path/to/dir").

最新更新