तो मैं एक चमकदार ऐप बनाने की कोशिश कर रहा हूं जहां मेरे पास एक बटन है जो केवल फाइलों को अपलोड होने पर दिखाता है; इसके लिए मैं सशर्त पैनेल का उपयोग कर रहा हूँ।सशर्त बनाना फ़ाइल फ़ाइल के साथ अपलोड की गई फ़ाइलों पर निर्भर करता है इनपुट
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
, जो दोनों के इससे पहले कि मैं एक फ़ाइल अपलोड मौजूद होने बटन में परिणाम कर रहे हैं। मुझे लगता है कि ऐसा इसलिए है क्योंकि इनपुट $ फ़ाइलें एक खाली डेटा है। फ़ाइलों को चुनने से पहले फ्रेम, और इसलिए शून्य-शून्य लंबाई/आकार है, क्या यह सही है?
कम से कम एक फ़ाइल अपलोड होने तक बटन को छिपाने के लिए मैं किस स्थिति का उपयोग कर सकता हूं?
मुझे लगता है कि एक और विकल्प uiOutput
साथ conditionalPanel
बदल दें और server.R में एक निरीक्षण/अलग ब्लॉक जो input.files देख रहा है (if (nrow(input$files) < 1) return()
) के अंदर renderUI({actionButton(...)})
कॉल करने के लिए हो सकता है; क्या यह एकमात्र तरीका है? अगर मैं इसे किसी भी तरह से कर सकता हूं, तो मुझे एक या दूसरे को चुनने के लिए क्या होगा (conditionalPanel
से कम परिणामस्वरूप कम कोड)?
अहा, मैं भी 'पता नहीं था outputOptions()' अस्तित्व में! यह आपकी 'आउटपुट' सूची में कुछ छिपाने का एक मुश्किल तरीका है, लेकिन यह काम करता है। – ClaytonJY
ऐसा लगता है कि कुछ बदल गया है और अब किसी को आउटपुट करना होगा। Output.fileUploaded == true "'। –