【发布时间】:2016-05-16 09:53:40
【问题描述】:
我在将反应函数中的值分配给反应值时遇到了一些问题。根据 input$id 我想为正确的反应值分配一个值。但是,尽管我可以观察到调用我的反应函数的正确值,例如在观察环境中,但我无法编写反应值。最终,我想根据 input$top 将 input$a1 分配给 reac.val$tab1 并将 input$a2 分配给 reac.val$tab2。 我在下面附上了我的 ui.R 和 server.R 文件。
ui.R
library(shiny)
shinyUI(navbarPage("My App", id = "top",
tabPanel("Infos", id = "info",
textInput("name", "last name", "")),
navbarMenu("Menu",
tabPanel("tab1",
column(3, textInput(inputId="a1", label="input1", value = 0 , width = 100)),
column(4, tableOutput("aim1"))),
tabPanel("tab2",
column(3, textInput(inputId="a2", label="input2", value = 0 , width = 100)),
column(4, tableOutput("aim2"))))
))
server.R
library(shiny)
shinyServer(function(input, output) {
val <- data.frame(first = numeric(1), second = numeric(1))
reac.val <- reactiveValues("tab1" = val, "tab2" = val)
observeTab <- reactive({
tab <- input$top
if (tab != "Infos") {
tab.df <- reac.val[[tab]]
first.val <- as.numeric(input$a1)
second.val <- as.numeric(input$a2)
tab.df$tab1 <- first.val
tab.df$tab2 <- first.val
reac.val[[tab]] <- tab.df
reac.val[[tab]]
}
})
output$aim1 <- renderTable({
reac.val[[input$top]]
})
output$aim2 <- renderTable({
reac.val[[input$top]]
})
})
【问题讨论】:
标签: r shiny reactive-programming