2
これらの機能を備えた単純なアプリケーションを作成しようとしています。Shinyのネストされた反応式
ユーザーは「カスタム」または「デフォルト」を選択します。
[デフォルト]を選択すると、デフォルトのテキストが表示されます。しかし、「カスタム」を選択すると、ユーザーはテキストを「提出」することができ、送信されたテキストが表示されます。
私はこれを行うためのコードを書いていますが、「カスタム」のケースでは2つの反応式を同時に処理できません。ここで
コードです:
library(shiny)
ui = navbarPage(
title = 'Text',
tabPanel(
'Custom App',
fluidRow(
radioButtons('radio', 'Select Action', choices = list('Default' = 'Default', 'Custom' = 'Custom'),
selected = 'Default', inline = T),
column(6, textInput('text_given', label = 'Enter Text', value = '')),
actionButton('submit_button', 'Submit'),
textOutput(text)
)
)
)
server = function(input, output, session){
main = reactive({
selected_action = input$radio
if(selected_action == 'Default'){
text_to_show = 'Default Text'
} else{
dataInput = eventReactive(input$submit_button,{
text_to_show = input$text_given
})
}
return(list('text_output' = text_to_show))
})
output$text = renderText(main()$text_output)
}
shinyApp(ui = ui, server = server)
に基づいてこれは完璧に動作します。ありがとう!あなたは親切にこれを手伝ってもらえますか?デフォルトを選択したときにテキストフィールドと送信ボタンを非表示にして、カスタムが選択されているときにのみ表示したいとします。これを行う方法 ? –
問題はありません、私の編集を参照してください。お役に立てれば! – Florian
ありがとう!これは素晴らしいです。ちょっとした問題は、カスタムを選択してテキストを入力してサブミットし、デフォルトに戻ってからカスタムに戻ったときに、前に入力したテキストが残ることです。提出がクリックされた後にそれが消えれば素晴らしいだろう。助けてくれてありがとう。 –