R 在同一个闪亮的应用程序中使用shinyjs和ggplot2::autoplot

R 在同一个闪亮的应用程序中使用shinyjs和ggplot2::autoplot,r,ggplot2,shiny,shinyjs,R,Ggplot2,Shiny,Shinyjs,在我闪亮的应用程序上,我将函数ggplot2::autoplot与lm对象一起使用。 这要归功于软件包ggfortify 在我闪亮的应用程序中,我还使用了shinyjs 在下面的可复制示例中,只要我取消注释library(shinyjs)&useShinyjs()我就会得到错误: 取消对环境的访问时出错(x):无法取消对环境的访问 有没有可能的解决办法 library(shiny) library(ggplot2) library(ggfortify) #library(shinyjs) ui

在我闪亮的应用程序上,我将函数
ggplot2::autoplot
lm
对象一起使用。
这要归功于软件包
ggfortify

在我闪亮的应用程序中,我还使用了
shinyjs

在下面的可复制示例中,只要我取消注释
library(shinyjs)
&
useShinyjs()
我就会得到错误:
取消对环境的访问时出错(x):无法取消对环境的访问

有没有可能的解决办法

library(shiny)
library(ggplot2)
library(ggfortify)
#library(shinyjs)

ui <- fluidPage(
    #useShinyjs(),
    div(
        actionButton("run", "Run")
        ,uiOutput("ui_autoplot")
    )   
)

server <- function(input, output, session) {

    data <- iris

    rv_autoplot <- eventReactive(input$run, {
        a <- lm(data = data, Sepal.Length ~ Petal.Length)
        p <- autoplot(a, which = 1:6, label.size = 2, data = data)
        return(p)
    })

    output$autoplot <- renderPlot({
        req(rv_autoplot())
        rv_autoplot()
    })


    output$ui_autoplot <- renderUI({
        plotOutput("autoplot")
    })
}

shinyApp(ui = ui, server = server)

您可以使用名称空间调用
shinyjs
参数,而不是加载库,
shinyjs::useShinyjs()
似乎对我有用。

这是加载
shinyjs
后出现的屏蔽函数之一

以下对象被“包:方法”屏蔽:

移除类,显示

即,函数
show

您可以通过执行SBista在其回答中所做的操作来解决该问题,也可以通过添加以下内容在您的全局环境中重新设置函数的掩码

show <- methods::show

show在我的机器上,即使shinyJS被注释掉,它也不会工作。一旦shinyJS被加载,它就不再工作了。可能
分离(“package:shinyjs”,unload=TRUE)
。如果持续,你会得到哪个错误?你是对的。不好意思:)非常感谢。你对这种奇怪的行为有什么解释吗?这种行为是由于K.Rhode在他的回答中建议的蒙面功能造成的。谢谢你的回答。但是我将把被接受的答案换成K.Rohde的,因为他的解决方案阻止了通过
shinyjs::
@qfazille为每个shinyjs函数加前缀,我同意!他的回答更加优雅,是一个更好的解决方案。我在
库(shinyjs)
之后添加了这一行,但仍然得到了error@qfazille这很奇怪。我不相信。抱歉。我的错,我必须在服务器部分设置它,它工作得很好。这是我最初开发shinyjs时的一个疏忽(也是因为我从未想过它会流行起来)-我很抱歉这会造成问题。仅供参考,如果您仍想使用shinyjs中的
show()
removeClass()
,您可以使用它们的同义词
showElement()
removeClass()
show <- methods::show