를 추가하는 방법을 업데이트(재생)버튼을니다.R

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 어떤 장소에서 응용 프로그램에서,그래서 거기에 아무 이유 없이 이 부분에 대해서 존재하는,그러나지 않기 때문에 나는 무엇을 알고 당신의 목적과 어떻게 볼 것이 최종 응용 프로그램,내가 말하는 게 아니에요 이것은 일반적으로 잘못입니다.

Ok,지금 이것에 대해 업데이트 버튼입니다. 우리에 초점을 맞출 것이 이 코드:

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 를 클릭했을 때 클릭하면 다시,반짝이는 다시 계산[(재)렌더링]텍스트입니다. 그것은 다시 계산기 때문에,우리는 사용하지 않았 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*observereactive? I.e. 일반적으로 중첩 active-reactive?
gss

난 그것은 적합하지 않습니다. 나는 것입 업데이트로 전체 관찰하/응답 reactiveVal
Wietse de Vries

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................