如何使用从反应包装器中的renderUI元素获取的值?
即我的代码:
CompanyNames <- sqlQuery(connection, "SELECT Companynm FROM RiskMgm_Company")
output$CompNameSelector <- renderUI({
selectInput("compName","Company Name:",as.vector(CompanyNames[,1]))
})
CompID <- reactive({
CompID <<- sqlQuery(paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '",compName,"'"))
})
output$MotorSelector <- renderUI({
selectInput("MachSer","Machine:",sqlQuery(connection,paste("SELECT Motor_func FROM RiskMgm_Motor WHERE Company_ID='",CompID,"'")))
})
Run Code Online (Sandbox Code Playgroud)
我的错误:
Successfilly opened connection to db
Error in paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '", :
could not find function "compName"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?基本上我想要的是SQL查询给出的公司列表.然后,根据所选公司的不同,它将在下一个下拉框中显示属于该公司的电机
谢谢
例如,您可以通过id引用元素input$compName.作为一个人为的例子,这是一个带有两个selectInput的简单闪亮的应用程序.第二种selectInput选择取决于第一种的价值.引用创建的窗口小部件的输出renderUI与引用相同的窗口小部件(如果它们从头开始在UI.R中)没有什么不同:
library(shiny)
myDF <- data.frame(A = 1:4, B = 3:6, C = 6:9, D = 10:13)
runApp(
list(
ui = fluidPage(
uiOutput("myList"),
uiOutput("myNumbers")
)
, server = function(input, output, session){
output$myList <- renderUI({
selectInput("compName", "Company Name:", LETTERS[1:4])
})
output$myNumbers <- renderUI({
selectInput("compNo", "Product Line:", myDF[, input$compName])
})
}
)
)
Run Code Online (Sandbox Code Playgroud)