【问题标题】:R Shiny app load from link throws RestoreContext error yet still works?从链接加载 R Shiny 应用程序会引发 RestoreContext 错误但仍然有效?
【发布时间】:2018-05-12 05:05:27
【问题描述】:

我正在开发两个 Shiny 应用程序,我希望能够使用应用程序 1 为应用程序 2 生成一些输入(在本例中为基因名称)。来自 App 1 的基因名称通过 shinyparseQueryString() 解析,然后对 App 2 执行任何操作。

为了模拟 App 1,我只有一个简单的 HTML 文件(我从this webinar about bookmarking 获得了链接结构):

<html>
  <body>
    <div>
      <a href="http://10.59.24.60:3800/quux/?_inputs_&gene=IL23R">Send to targetProfiler</a>
    </div>
  </body>
</html>

其中“quux”是 App 2 的名称。这非常好;我单击链接并被带到 App 2,然后它在数据库中搜索基因名称等。但是,我在右下角收到 shiny 错误消息

其中读取shiny 认为它未能解析 URL 参数,而实际上它确实解析了。

处理这个的服务器代码是这样设置的:

observe({
  #make sure its first time loading app 
  if (!vals$firstLoad) {
    return (NULL)
  }

  query <- parseQueryString(session$clientData$url_search)
  # browser()
  # Only continues when there is gene names to be queried in the URL
  req(query[['gene']])

  # Get URL parameter
  inputText <- paste0(unique(splitByComma(query[['gene']])), collapse = ',') # Only unique terms

  #do stuff with inputText
  #...
  #...

有没有办法抑制这个警告/错误?或者shiny 认为它没有正确解析 URL 参数,而实际上它有什么做错了?

【问题讨论】:

    标签: r shiny bookmarks


    【解决方案1】:

    书签值在 URL 中编码为 JSON。 IL23R 不是没有双引号的有效 JSON 字符串。 gene="IL23R" 应该可以工作,或者也可以像gene=%22IL23R%22 一样进行百分比编码。

    【讨论】:

    • 请观看我链接的网络研讨会。演示者对 JSON 只字未提,将链接更改为包含双引号或 %22 会使应用程序崩溃。我写链接的方式似乎对他有用,所以很好奇为什么它给我抛出错误但仍然有效。
    • 你能发布一个可运行的例子吗?应用程序崩溃时的错误消息?如果没有明确指出,至少在 8:00,URL 示例显示用双引号编码的字符串。
    • 不确定为什么演示者将它们放在引号中,因为他展示的实际示例中没有一个似乎带有引号。但我一直在尝试用一个更小、更基本的应用程序来重现。这有点棘手,但我会在它工作时编辑我的问题。
    • 后面的例子似乎都使用了数字输入值,在 JSON 中按原样编码,不带引号。
    • 似乎无法在另一个应用程序中重现此错误。我在我的问题中的代码似乎处理得很好,没有错误。但在我的实际应用中,无论出于何种原因,它都不会并会引发烦人的错误。
    猜你喜欢
    • 2021-12-06
    • 2013-03-27
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多