1
我想建立一個閃亮的web應用程序,其中:閃亮的應用程序 - 尋呼
- 首先,頁面顯示爲用戶輸入選擇(例如下拉框中,輸入文本字段等)
- 有是用戶點擊的下一個按鈕,它將引導他們進入下一頁,在那裏他們可以輸入/回答另一組問題。
- 然後在最後一頁,結果(可視化/分析)出現在他們的輸入基礎上。
- 後退按鈕是在情況下,用戶需要修改他們的答案/輸入
是否有任何部件/方法可以做到這一點?
任何建議將不勝感激:-)
乾杯!
我想建立一個閃亮的web應用程序,其中:閃亮的應用程序 - 尋呼
是否有任何部件/方法可以做到這一點?
任何建議將不勝感激:-)
乾杯!
您可以將應用程序的各個部分放在div中,並使用shinyjs包顯示和隱藏它們。這也可以讓你建立條件來推進你的應用程序的下一部分。看下面的例子。在這個例子中,如果用戶在第一部分回答問題,用戶只能繼續第2部分。
希望這會有所幫助!
library(shiny)
library(shinyjs)
ui<- shinyUI(fluidPage(
useShinyjs(),
div(id="div_1",
h3('Section 1'),
textInput("question1","what is the airspeed velocity of an unladen swallow?"),
actionButton("continue1","Continue.")
),
shinyjs::hidden(div(id="div_2",
h3('Section 2'),
textInput("question2","what is your favorite color?"),
actionButton("continue2","Continue."),
actionButton("goback2","Go back!")
)),
shinyjs::hidden(div(id="div_3",
h3('Section 3'),
textOutput("results"),
actionButton("goback3","Go back!")
))
)
)
server <- function(input,output)
{
observeEvent(input$continue1,{
if(nchar(input$question1)>0)
{
shinyjs::hide("div_1")
shinyjs::show("div_2")
}
else
{
showModal(modalDialog(
title = "Important message",
"How about you actually answer the question before continuing?"
))
}
})
observeEvent(input$continue2,{
shinyjs::hide("div_2")
shinyjs::show("div_3")
})
observeEvent(input$goback2,{
shinyjs::hide("div_2")
shinyjs::show("div_1")
})
observeEvent(input$goback3,{
shinyjs::hide("div_3")
shinyjs::show("div_2")
})
output$results <- renderText({paste0("Your answers were: '", input$question1,"' and '", input$question2, "'.") })
}
shinyApp(ui,server)
謝謝。這是完美的:) –
很高興我能幫上忙。如果能解決您的問題,請考慮接受答案嗎?謝謝! – Florian