次の例では、テキストが先頭に表示されません。 "show"ボタンをクリックすると、テキストが表示されます。私が「隠す」ボタンをクリックすると、何も起こりません。 実際、 "textis $ visible"変数は常に正しい値を持ちますが、observeEvent funktionのif文は、最初のボタンをクリックした後にのみ計算されると思います。なぜobserveEventはコンテンツを再評価しないのですか?
observeEventにif文の再評価を強制する方法はありますか?あるいは、サーバー部分でコードを実行してから光沢を止めてもう一度やり直す方法は他にあります(実際にはif文の中に関数呼び出しがたくさんあり、テキストを隠して表示するだけではありません)
library(shiny)
ui <- fluidPage(
actionButton(inputId="show","show"),
actionButton(inputId="hide","hide"),
textOutput(outputId = "some_text")
)
server <- function(input, output) {
textis<-reactiveValues(visible=FALSE)
observeEvent(input$show,
textis$visible<-TRUE)
observeEvent(input$hide,
textis$visible<-FALSE)
observeEvent(textis$visible , if(textis$visible){
output$some_text<-renderText({"this is some text"})
})}
shinyApp(ui = ui, server = server)
解き私のこの種の問題。しかし、実際のアプリケーションでは、server.Rのコードの一部を実行しないようにしたいので、特定の値がfalseになると、すでに実行されたものを表示しません。これはログアウト機能のようなもので、他のコンピュータユーザーはあなたが計算したものを見ていません。多分Rセッションを再開する方法はありますか?光沢のあるアプリをリセットするための –
私は良い答えを見つけました: https://stackoverflow.com/questions/25062422/restart-shiny-session –