如何获取对象的反应值并将其传递给 shiny R 中的另一个函数

how do I get reactive value of an object and pass it to another function in shiny R

如何在 plot1 中使用反应值并在 plot2 中使用 X 的对象。换句话说,我想获取 x 的值并将其传递给 plot1 之外的另一个函数。 Server.R中的代码如下:

output$plot1<-renderPlot({
x<-reactiveValue(o="hello")


)}
outpu$plot2<-renderplot({
print(input$x$o)

)}

当我 运行 它在 RStudio 控制台中没有显示任何内容。

在服务器中定义 renderPlot 之外的反应值。此外,它不是 input 的一部分,因此简称为 x$o.

library(shiny)

shinyApp(
    shinyUI(
        fluidPage(
            wellPanel(
                checkboxInput('p1', 'Trigger plot1'),
                checkboxInput('p2', 'Trigger plot2')
            ),
            plotOutput('plot2'),
            plotOutput('plot1')
        )
    ),
    shinyServer(function(input, output){
        x <- reactiveValues(o = 'havent done anything yet', color=1)

        output$plot1 <- renderPlot({
            ## Add dependency on 'p1'
            if (input$p1)
                x$o <- 'did something'
        })

        output$plot2<-renderPlot({
            input$p2 
            print(x$o)  # it is not in 'input'

            ## Change text color when plot2 is triggered
            x$color <- isolate((x$color + 1)%%length(palette()) + 1)

            plot(1, type="n")
            text(1, label=x$o, col=x$color)
        })
    })
)