Измените блестящее реактивное выражение с помощью двух форм пользовательского ввода

#shiny #expression #reactive

Вопрос:

Я хочу использовать реактивное выражение, которое может быть обновлено одним из двух способов. Ниже приведен очень простой пример с числовым вводом или кнопкой сброса, чтобы вернуть выражение в исходное состояние (на практике выражение более сложное, поэтому не может использовать реактивные значения). Похоже, что распознается только второе определение num, поэтому в примере числовой ввод игнорируется).
Что я упускаю?
Большое спасибо!

 ui lt;- fluidPage(  numericInput("number", "Input", 1),  actionButton("button", "Reset"),  textOutput("check") ) server lt;- function(input, output){  num lt;- reactive({  input$number  })  num lt;- eventReactive(input$button, {  1  })  output$check lt;- renderText({  num()  }) } shinyApp(ui, server)  

Ответ №1:

Редактировать:

Мы можем использовать observeEvent() каждый ввод для обновления num() .

 library(shiny)  ui lt;- fluidPage(  numericInput("number", "Input", 1),  actionButton("button", "Reset"),  textOutput("check") ) server lt;- function(input, output) {  num lt;- reactiveVal()   observeEvent(input$number, {  num(input$number)  })   observeEvent(input$button, {  num(1)  })   observeEvent(c(input$button, input$number), {  output$check lt;- renderText({  num()  })  }) } shinyApp(ui, server)  

Комментарии:

1. Спасибо @jpdugo17, но это приведет меня туда, куда я хочу. Реактивное выражение по-прежнему реагирует только на кнопку сброса, а не на числовой ввод (как вы можете видеть по тому факту, что вывод под кнопкой сброса не реагирует на числовой ввод). Есть еще какие-нибудь мысли? Извините, если мой предыдущий вопрос не был ясен.

2. Следует читать «…это не приведет меня туда, куда я хочу…» Чтобы уточнить, моя проблема заключается в том, чтобы заставить выражение реагировать на оба ввода, а не обновлять числовой ввод.

3. Я отредактировал ответ, пожалуйста, взгляните.

4. Если я не ошибаюсь, вы хотите, чтобы на выходе отображалось значение от input$number , и если кнопка нажата, вывод должен вернуться к 1?

5. Это делает свое дело! Так просто, что я просто не мог этого понять. Спасибо вам за ваше терпение @jpdugo17.