摆脱流体页面中的小侧边栏,然后将文本框替换为灵活的文本框

时间:2018-07-30 17:45:07

标签: r shiny textbox shinydashboard

我有以下代码可帮助显示或隐藏文本框,但由于某些原因 我想摆脱掉左侧的空白栏(参见图片),不确定该栏表示什么

enter image description here

代码如下:

library(shiny)
library(shinydashboard)
library(shinyjs)

ui <- fluidPage(theme=shinytheme("cosmo"),

                # titlePanel("Use an existing theme"),

sidebarLayout(

sidebarPanel(
useShinyjs()
),
mainPanel(
box(id = "myBox",width = '800px',
textInput(inputId = 'inputsLocation', label = 'Inputs Location', value = "~ Downloads/user_inputs.csv",placeholder = "Please provide your name..."),
actionButton('load_inputs', 'Load inputs'),actionButton('save_inputs', 'Save inputs'),
br(),
br(),
textInput("textbox_ui", "Text")

),
actionButton(inputId = "button", label = "show / hide")

)
)
)

server <- function(input, output,session){

## observe the button being pressed
observeEvent(input$button, {
  observeEvent(input$load_inputs, {
    # Load inputs
    uploaded_inputs <- read.csv(input$inputsLocation)
    # Update each input
    for(i in 1:nrow(uploaded_inputs)){
      updateNumericInput(session,
                         inputId = uploaded_inputs$inputId[i],
                         value = uploaded_inputs$value[i])
    }
  })

  observeEvent(input$save_inputs, {
    # Define inputs to save
    inputs_to_save <- c('textbox_ui')
    # Declare inputs
    inputs <- NULL
    # Append all inputs before saving to folder
    for(input.i in inputs_to_save){
      inputs <- append(inputs, input[[input.i]])
    }
    # Inputs data.frame
    inputs_data_frame <- data.frame(inputId = inputs_to_save, value = inputs)
    # Save Inputs
    write.csv(inputs_data_frame, file = input$inputsLocation, row.names = FALSE)
  }) 

if(input$button %% 2 == 1){
shinyjs::hide(id = "myBox")
}else{
shinyjs::show(id = "myBox")
}

})
}

shinyApp(ui, server)

我也希望将文本输入框替换为灵活框,就像从下面的代码中获得的那样:

library(shiny)
ui <- fluidPage(

  withTags(
    div(
      textarea(id = "response2", 
               class = "form-control shiny-bound-input",
               style = "width: 300px; height: 34px")
    )
  )


)

server<-function(input, output, session) {
  output$out <- renderText({
    input$response2
  })
}

shinyApp(ui = ui, server = server)

0 个答案:

没有答案