conditional panel
https://shiny.rstudio.com/reference/shiny/1.0.1/conditionalPanel.html
ConditionalPanel
conditionalPanel works on client side(js), so its not see your variable.
Here you can do it on server side using renderUI
library(shinyjs) ui <- fluidPage( useShinyjs(), actionButton("Button_Initial", "Button_Initial") ) #*------------------------------------------------------------------------- ==== server <- function(input, output, session) { init_env1 <- function(){ env <- new.env() env$num <- 0 return(env) } env1 <- init_env1() #num <<- 0 observeEvent(input$Button_Initial, { showModal( modalDialog(title="Clustering", easyClose=F, size="l", #footer=tagList( modalButton("Cancel"), actionButton("pCluster_MainUI_apply", "Apply") ), fluidRow(column(width=12, plotOutput("Plot1", width="100%"))), fluidRow(column(width=12, plotOutput("Plot2", width="100%"))), fluidRow(column(width=4, actionButton("btn_toggle", label="toggle", click="btn_toggle_click"))), fluidRow(#condition = "input.btn_toggle_click %% 2 == 1" , #condition = "num %% 2 == 1" , #condition = "env1$num %% 2 == 1" , column(width=10, hr(),rHandsontableOutput("Table1")) ) ) ) uFunc_Plot1() uFunc_Plot2() uFunc_Table1() hide("Plot2") hide("Table1") show("Plot1") }) observeEvent(input$btn_toggle, { #if (isolate(input$btn_toggle) %% 2 == 1) { toggle("Plot1") toggle("Plot2") toggle("Table1") # } }) uFunc_Plot1 <- function(){ output$Plot1 <- renderPlot({ p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))+ geom_point(aes(color="red")) return(p) }) } uFunc_Plot2 <- function(){ output$Plot2 <- renderPlot({ p <- ggplot(iris, aes(x=Petal.Length, y=Petal.Width))+ geom_point() return(p) }) } uFunc_Table1 <- function(){ output$Table1 <- renderRHandsontable({ rhandsontable(iris[1:5,], readOnly = TRUE, selectCallback = TRUE) }) } #***************************************************************************************************************** ----- } shinyApp(ui, server)
library(shinyjs) ui <- fluidPage( actionButton("Button_Initial", "Button_Initial") ) #*------------------------------------------------------------------------- ==== server <- function(input, output, session) { observeEvent(input$Button_Initial, { showModal( modalDialog(title="Clustering", easyClose=F, size="l", #footer=tagList( modalButton("Cancel"), actionButton("pCluster_MainUI_apply", "Apply") ), uiOutput("ui1"), fluidRow(column(width=4, actionButton("btn_toggle", label="toggle"))), uiOutput("ui2") ) ) uFunc_ui_scree() }) observeEvent(input$btn_toggle, { #print(isolate(input$btn_toggle)) if (isolate(input$btn_toggle) %% 2 == 0){ uFunc_ui_scree() }else{ uFunc_ui_cluster() } }) uFunc_ui_scree <- function(){ output$ui1 <- renderUI({ fluidRow( column(width=12, plotOutput("Plot1", width="100%"))) }) output$ui2 <- renderUI({ return() }) output$Plot1 <- renderPlot({ p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))+ geom_point(aes(color="red")) return(p) }) } uFunc_ui_cluster <- function(){ output$ui1 <- renderUI({ fluidRow( column(width=12, plotOutput("Plot2", width="100%"))) }) output$ui2 <- renderUI({ fluidRow( hr(), column(width=10, rHandsontableOutput("Table1")) ) }) output$Plot2 <- renderPlot({ p <- ggplot(iris, aes(x=Petal.Length, y=Petal.Width))+ geom_point() return(p) }) output$Table1 <- renderRHandsontable({ rhandsontable(iris[1:5,], readOnly = TRUE, selectCallback = TRUE) }) } #***************************************************************************************************************** ----- } shinyApp(ui, server)