in R shiny, how to fix error in sourcing app as nothing changes when clicking on action button?

帅比萌擦擦* 提交于 2019-12-17 10:06:47

问题


Building on multiple stackoverflow questions, I tried to build this app which contain two action buttons the first one shows datatable the second one should open another sourced app but actaully nothing changes but in the global environment all list, functions and dataframes are reflecting. the used code.

UI.R--------------------------------

library(shiny)
library(shinydashboardPlus)
library(DT)
library(readxl)
library(dplyr)
library(formattable)
library(shinydashboard)
library(shinyjqui)
library(shinyjs)
library(shinythemes)
library(markdown)

title <- "emblem"
ui = fluidPage(theme=shinytheme("superhero"),
           dashboardPage(dashboardHeader(title = title, titleWidth = 200), 
                         dashboardSidebar(selectInput("listofitems","Items List",c("Home","Group","Clients"), selected = "Home")),
                         dashboardBody(
                             useShinyjs(),
                             uiOutput("ui_myHome"))))

SERVER.R

Clientsbutton<-fluidPage(theme=shinytheme("yeti"),

                     DT::dataTableOutput("mytable"))
shinyServer(function(input, output, session){
output$mytable = DT::renderDataTable({
    mtcars
})
    output$ui_myHome<-renderUI({
        if (input$listofitems == 'Home'){(fluidPage(
            widgetUserBox(title = "Clients",
                          shiny::actionButton(inputId='clientsmainbuttonId', label="Click here"),
                          type = 2, src = "https://adminlte.io/themes/AdminLTE/dist/img/user7-128x128.jpg", color = "yellow"),
            widgetUserBox(title = "Group",
                          shiny::actionButton(inputId='GroupbuttonId', label="Click here"),
                          type = 2, src = "https://adminlte.io/themes/AdminLTE/dist/img/user7-128x128.jpg", color = "green")))}

        else if (input$listofitems == 'Clients'){(Clientsbutton)}
        else if (input$listofitems == 'Group'){(source("testsource.R",local = T)$value)}
    })
    observeEvent (input$GroupbuttonId,{
        #browser
        source("testsource.R",local = T)$value
    })
    observeEvent(input$clientsmainbuttonId,{updateSelectInput(session,"listofitems","Items List",         choices =c("Home","Group","Clients"), selected = "Clients")},ignoreInit = TRUE)
    observeEvent(input$logo,{updateSelectInput(session,"listofitems","Items List", choices =c("Home","Group","Clients"), selected = "Home")},ignoreInit = TRUE)
})

TO BE SOURCED APP

File name testsource.R

rm(list = ls())
library(shiny)

shinyApp(
ui=shinyUI(basicPage(
actionButton("go", "Go"),
numericInput("n", "n", 50),
plotOutput("plot")
 )),
server=shinyServer(function(input, output, session){

randomVals <- eventReactive(input$go, {
  runif(input$n)
})

output$plot <- renderPlot({
  hist(randomVals())
})
}) 
)

来源:https://stackoverflow.com/questions/59129562/in-r-shiny-how-to-fix-error-in-sourcing-app-as-nothing-changes-when-clicking-on

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!