2017-11-28 3 views
0

私は、私が取り組んでいる2つのShinyアプリケーションを持っています.App 1を使用してApp 2(この場合は遺伝子名)への入力を生成したいと考えています。アプリケーション1から遺伝子名はshinyparseQueryString()を経由して解析され、その後、アプリケーション1をシミュレートするためのApp 2.リンクからのShiny appの読み込みはRestoreContextエラーをスローしますがまだ動作していますか?

に関しては、私は(私がthis webinar about bookmarkingからリンク構造を持って)、単純なHTMLファイルを何もありません。

<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の名前です。これは問題なく動作します。私はしかし、私は右下隅

like this

shinyエラーメッセージが表示されますリンクをクリックするとApp 2にもたらしていますし、それはなど、データベース内の遺伝子名を検索するもので、それ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 
    #... 
    #... 

この警告/エラーを抑止する方法はありますか?あるいは、実際にはURLパラメータが正しく解析されていないと、間違って行われているのは何ですか?shiny

答えて

0

ブックマークされた値は、JSONとしてURLにエンコードされます。 IL23Rは二重引用符のない有効なJSON文字列ではありません。 gene="IL23R"が有効であるか、またはgene=%22IL23R%22のようにパーセントエンコードされます。

+0

リンク先のウェブセミナーをご覧ください。プレゼンターはJSONについて何も言わず、二重引用符や '%22'を含むようにリンクを変更するとアプリケーションがクラッシュします。私がリンクを書いたやり方は彼のために働くように思えるので、なぜ私にとって間違いを投げかけているのか、それでもなお実際に働いているのは興味があります。 –

+0

実行可能な例を投稿できますか?アプリがクラッシュしたときのエラーメッセージ明示的に呼び出されていない場合、少なくとも8:00に、URLの例に二重引用符でエンコードされた文字列が表示されます。 –

+0

プレゼンターが引用符で囲んでいる理由はよく分かりません。実際の例は引用符で囲まれていないようです。しかし、私はより小さく、より基本的なアプリで再現しようとしていました。それはちょっと難しいですが、私はそれを働かせているときに私の質問を編集します。 –

関連する問題