2016-08-25 2 views
1

Рассмотрим пример нижеКак сбросить сеанс в R?

ui.R:

library(shiny) 
library(shinyjs) 

shinyUI(
    tabPanel("VIEW", 
      tabsetPanel(id="viewic", 
         tabPanel("view1", 
           fluidRow(column(2, 
               actionButton("button1", "BUTTON1")), 
              column(2, 
               actionButton("button2", "BUTTON2")) 
           )) 
         tabPanel(" View2"))), 
    fluidRow(
    uiOutput("ui1") 
), 
    fluidRow(
    uiOutput("ui2") 
)) 

Сервер:

library(shiny) 
library(shinyjs) 

shinyServer(function(input, output,session){ 

    observeEvent(
    input$button1, 
    output$ui1 <- renderUI({isolate({ 
     column(3, 
      selectInput("selectview1", 
         label = "Select Id", 
         choices = c("1","2","3") 
      ))})})) 

    observeEvent(
    input$button2, 
    output$ui2 <- renderUI({isolate({ 
     column(3, 
      selectInput("selectview2", 
         label = "Select Id", 
         choices = c("4","5","6") 
      ))})})) 

}) 

Как сбросить сеанс, то есть; когда я нажимаю кнопку1, появляется selectinput с идентификатором selectview1, и когда я нажимаю кнопку2, появляется selectInput с идентификатором selectview2, определенным внутри него, но также отображается selectinput, которая появилась, когда нажата кнопка 1, вместе с ней и наоборот. Я попробовал сброс и переключиться, но это не сработало.

ответ

0

РЕДАКТИРОВАТЬ: используйте условную кнопку на ваших выборках. Так что-то эффект:

conditionalPanel(condition = 'input.button1 % 2 > 0', uiOutput("ui1") )

Это проверяет, является ли значение вашего actionButton даже и отображает только его, когда это странно. Поэтому, если кнопка начинается с значения 0, она будет отображаться после 1, 3, 5, 7 ... кликов.

Я думаю, что это должно сработать. Вы можете попробовать?


Если вы просто хотите, чтобы скрыть кнопку в зависимости от щелчка, смотрите в conditionalPanel() и обернуть код кнопки (Ui стороны) в этой функции.

http://shiny.rstudio.com/reference/shiny/latest/conditionalPanel.html

+0

Спасибо, сэр, я не хочу скрывать кнопку, но результат получается нажатием одной кнопки при нажатии на другую кнопку. – Rad

+0

Только что отредактировал мой комментарий. –

+0

Сэр, но кнопка 1 можно щелкнуть после нажатия кнопки2 во-первых, это зависит от пользователя. – Rad

0

ui.R

библиотека (блестящий)

библиотека (shinyjs)

shinyUI (

fluidPage (

tabPanel ("VIEW",

 tabsetPanel(id="viewic", 

        tabPanel("view1", 

fluidRow (колонка (2,

           actionButton("button1", "BUTTON1")), 

колонка (2,

        actionButton("button2", "BUTTON2")) 

)), 

tabPanel (»View2"))),

fluidRow (

uiOutput("ui1") 

),

fluidRow (

uiOutput("ui2") 

)))

сервера.R

библиотека (блестящая) библиотека (shinyjs)

shinyServer (функция (вход, выход, сессия) {

observeEvent (

input$button1, 

output$ui1 <- renderUI({isolate({ 


    output$ui2<-renderUI(

    isolate({ 

     dataTableOutput(NULL) 


    })) 
    column(3, 

     selectInput("selectview1", 

        label = "Select Id", 

        choices = c("1","2","3") 
     ))})})) 

observeEvent (

input$button2, 

output$ui2 <- renderUI({isolate({ 

    output$ui1<-renderUI(

    isolate({ 

     dataTableOutput(NULL) 


    })) 

столбец (3,

  selectInput("selectview2", 

        label = "Select Id", 

        choices = c("4","5","6") 

     ))})})) 

})

Этот код работал.

Смежные вопросы