だから私は、ファイルがアップロードされた場合にのみ表示されるボタンがある光沢のあるアプリを作成しようとしています。この場合、条件付きパネルを使用しています。
ui.R:
require(shiny)
shinyUI(pageWithSidebar(
headerPanel("My App"),
sidebarPanel(
fileInput("files", "Choose file"),
conditionalPanel(
condition = "input.files",
actionButton("submitFiles", "Submit files for processing"))),
mainPanel(h3("Nothing to see here"))
))
上記の例は何もしないので、私のserver.Rには何も気にする必要はないと思います。上記の条件では、ボタンは表示されません。つまり、条件が真になることはありません。
私が自分の状態で試したいくつかのことはinput.files.length > 0
、ファイルをアップロードする前input.files.size() > 0
にボタンが表示される結果になります。これは、ファイルを選択する前に input$files が空の data.frame であるため、長さ/サイズがゼロではないためだと思います。
少なくとも 1 つのファイルのアップロードが完了するまでボタンを非表示にするには、どのような条件を使用できますか?
もう 1 つのオプションは、 に置き換えconditionalPanel
て、input.files ( )を監視している server.R の監視/分離ブロック内でuiOutput
呼び出すことだと思います。それが唯一の方法ですか?どちらの方法でもこれを行うことができる場合、(コードが少なくなる以外に) どちらかを選択する理由は何ですか?renderUI({actionButton(...)})
if (nrow(input$files) < 1) return()
conditionalPanel