2016-04-22 63 views
1

我是新的R閃亮,需要你的幫助。我想使用兩個動作按鈕(是和否)來針對單個問題提供用戶反饋(是否諷刺?)並將響應發送回server.R。但是,這兩個操作按鈕都不會向服務器發送任何響應。我只想讓server.R知道用戶選擇了是或否。我不明白其背後的原因。下面是我的代碼爲ui.R和server.R,提前感謝您的幫助。多個行動按鈕不工作在R閃亮

Ui.R

library(shiny) 

shinyUI(fluidPage(
h3(titlePanel("Sarcasm Detection")), 

sidebarLayout(
sidebarPanel(width=6, 
    h3("Enter your tweet:"), 
    br(), 

    textInput("text",""), 
    submitButton("Check for Sarcasm"), 

    hr(), 
    strong(textOutput("text_output")), 
    br(), 
    p("Is it correct?"),  
    actionButton("yessarcasm","Yes"), 
    actionButton("nosarcasm","No") 
), 
mainPanel(
    verbatimTextOutput("issarcasm") 
)) 
)) 

Server.R

library(shiny) 

shinyServer(function(input, output) { 

output$text_output <- renderText({ 

if(input$text %in% "sar"){ 
    "Yes, it is sarcastic" 
} 
else{ 
    "No, it is not sarcastic" 
} 

}) 

output$issarcasm <- renderText({ 
input$yessarcasm 
input$nosarcasm 
    if(input$yessarcasm != 0) { 
    "User Feedback: Correct Prediction" 
    } 
    else if (input$nosarcasm != 0) { 
    "User Feedback: Incorrect Prediction" 
    } 
})  
}) 

回答

3

問題在於submitButton。該文件指出,

形式,包括提交按鈕不會自動更新他們的 輸出時,輸入的改變,而他們等待,直到用戶明確 點擊提交按鈕。

因此,如果您有submitButton,其他輸入不再更新,除非您之後按下提交按鈕。解決方案是用actionButton替換它,並在服務器代碼中使用observeEvent

在ui.R

actionButton("action", "Check for Sarcasm"), 

在server.R

observeEvent(input$action, { 
output$text_output <- renderText({ 

    if(input$text %in% "sar"){ 
     "Yes, it is sarcastic" 
    } 
    else{ 
     "No, it is not sarcastic" 
    } 

}) 
}) 
+0

你的建議的工作。我沒有意識到提交按鈕是兩個操作按鈕無響應背後的原因。現在這個表格按我的預期工作。非常感謝您的幫助。 – bigdataumd