कैसे जोड़ने के लिए अद्यतन (ताज़ा) करने के लिए बटन app है.आर

0

सवाल

मैं बटन है, लेकिन मूल्यों को स्वचालित रूप से बदल जाएगा इससे पहले कि मैं हिट "अद्यतन" आदेश, मैं नहीं जानता कि कैसे इसे ठीक करने के लिए. इस तरह से होना चाहिए:दर्ज करें छवि विवरण यहाँनीचे है मेरे कोड:

library(shiny)
ui <- fluidPage(
 titlePanel("My Simple App"),
 
 sidebarLayout(
   sidebarPanel(
     helpText("Controls for my app"),
     
     selectInput("fruitchoice", 
                 label = "Choose a fruit",
                 choices = list("Apples", 
                                "Oranges",
                                "Mangos", 
                                "Pomegranate"),
                 selected = "Percent White"),
     
     sliderInput("amt", 
                 label = "Order Amount:",
                 min=0, max = 100, value=20),
     
     actionButton ("Update","Update Order")
   ),
   
   mainPanel(
     helpText("Fruit Chosen:"),
     verbatimTextOutput("fruit"),
     helpText("Order Amount"),
     verbatimTextOutput("amt")
   )
 )
)

# Define server logic required to draw a histogram
server <- function(input, output) {

   SelectInput <- eventReactive (input$Update , {
   runif(input$fruitchoice,amt)
  })
   output$fruit = renderText(input$fruitchoice)
   output$amt = renderText(input$amt)
}
# Run the application 
shinyApp(ui = ui, server = server)
r shiny
2021-11-24 05:38:40
2
0

मैं तुम्हें दिखाने के लिए कैसे, अपने को फिर से लिखना कोड प्राप्त करने के लिए इस अद्यतन के व्यवहार, हालांकि मैं करने के लिए की तरह यह भी आप जानते हैं कि इस हिस्से का कोड:

SelectInput <- eventReactive (input$Update , {
   runif(input$fruitchoice,amt)
  })

गलत है के लिए तीन कारण हैं: (1) वस्तु amt नहीं मौजूद है, तो आप शायद चाहते हैं input$amt; (2) यदि आप परिवर्तन amt करने के लिए input$amt कोड काम नहीं करेगा और आप मिल जाएगा त्रुटि; (3) अब आप उपयोग नहीं कर रहे हैं SelectInput किसी भी जगह में अपने आवेदन में, तो वहाँ कोई कारण नहीं है इस भाग के लिए करने के लिए मौजूद है, हालांकि के रूप में मैं नहीं जानता कि क्या है, अपने उद्देश्य के लिए और कैसे दिखेगा अंतिम app है, मैं यह नहीं कह रहा हूँ यह है, आम तौर पर गलत है ।

ठीक है, तो अब इस अद्यतन के बारे में बटन । हम पर ध्यान दिया जाएगा इस कोड के बारे में:

output$fruit = renderText(input$fruitchoice)
   output$amt = renderText(input$amt)

यहाँ आप हिदायत करने के लिए कार्यक्रम (फिर से)पाठ रेंडर जब input$fruitchoice या (दूसरी पंक्ति) जब input$amt बदलने के लिए, लेकिन आप चाहते हैं करने के लिए (फिर से)प्रस्तुत पाठ केवल जब उपयोगकर्ता क्लिक बटन है, तो आप दो चीजों की जरूरत है - सबसे पहले, सुनिश्चित करें कि उपयोगकर्ता बटन क्लिक किया और नहीं (फिर से)पाठ रेंडर जब input$ परिवर्तन. यह काम करेगा:

output$fruit = renderText({
    req(input$Update)
    isolate(input$fruitchoice)
    })
  output$amt = renderText({
    req(input$Update)
    isolate(input$amt)
    })

अगर मैं समझ चमकदार, सही ढंग से isolate() सुनिश्चित करें कि पाठ नहीं है (फिर से)प्रतिपादन जब input$ परिवर्तन (हालांकि यह आंतरिक रूप से नए मान) और req() सुनिश्चित करें कि input$Update क्लिक किया गया था, और जब क्लिक किया जाता है, फिर से चमकदार recomputes [(फिर से)renders] पाठ. यह recomputes, क्योंकि हम का उपयोग नहीं किया isolate() पर input$Update मुझे लगता है कि.

2021-11-24 09:37:42
0

वहाँ कुछ चीजें गलत अपने कोड में. मैं स्पष्टीकरण का एक सा हर एक के लिए:

आप कर रहे हैं आरंभ करने के साथ प्रतिक्रियाशील आदानों. का उपयोग करके renderText(input$...) तुम बनाने के लिए एक पाठ उत्पादन के साथ कि अद्यतन स्वचालित रूप से जब अपने इनपुट अद्यतन. स्वचालित रूप से समस्या है यहाँ, आप नहीं चाहते कि. हम जा रहे हैं लिखने के लिए एक वैकल्पिक तरीका है कि स्टोर जानकारी में एक अलग चर है कि हम केवल अनुमति देने के लिए अद्यतन किया जाएगा जब बटन दबाया जाता है. हम लगता है कि चर इनिशियलाइज़ की तरह तो:

rv <- reactiveValues(fruit = "Apples",
                       amt = 20)

EventReactive बनाता है एक प्रतिक्रियाशील चर है कि कर सकते हैं बाद में इस्तेमाल किया जा सकता है कोड. आम तौर पर बोल रहा हूँ क्या आप चाहते हैं का उपयोग करने के लिए, में इन तरह के परिदृश्यों है observeEvent. आप ऐसा कर सकते हैं इस तरह:

observeEvent (input$Update , {
    rv$fruit <- input$fruitchoice
    rv$amt <- input$amt
  })

अब हम एक चर की सूची नाम के तहत "rv" और एक observeEvent अद्यतन करता है कि इस चर हर बार बटन दबाया जाता है. वह सब छोड़ दिया है करने के लिए है बनाने renderText जो आप की तरह कर सकते हैं तो:

output$fruit <- renderText(rv$fruit)
output$amt <- renderText(rv$amt)
2021-11-24 10:22:43

यह नहीं है के गलत व्यवहार करने के लिए डाल दिया render* अंदर observe या reactive? I. ई. आम तौर पर घोंसले के शिकार सक्रिय प्रतिक्रियाशील?
gss

मुझे लगता है कि यह आदर्श नहीं है. मैं अद्यतन के साथ पूर्ण निरीक्षण/reactiveVal जवाब
Wietse de Vries

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में