Shiny 在“观察”中创建的访问权限
我正在尝试访问在Shiny 在“观察”中创建的访问权限,shiny,Shiny,我正在尝试访问在observe()中创建的reactive,并希望作为模块返回的对象。在下面的示例中,我正在从模块中查找mydf()和input$account\u页面。我知道我可以使用observeEvent(输入$go_to,{})来显示模态,但我还有其他用例可以这样做,我很难为此创建可复制的示例。因此,我为指定的问题创建了以下代码 library(shiny) library(shinyWidgets) choiceVec <- c("Beef/Pork" =
observe()
中创建的reactive,并希望作为模块返回的对象。在下面的示例中,我正在从模块中查找mydf()
和input$account\u页面
。我知道我可以使用observeEvent(输入$go_to,{})
来显示模态,但我还有其他用例可以这样做,我很难为此创建可复制的示例。因此,我为指定的问题创建了以下代码
library(shiny)
library(shinyWidgets)
choiceVec <- c("Beef/Pork" = "beefpork","Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit")
address_ui <- function(id) { }
address_server <- function(id, signin = reactive(0)) {
moduleServer(id, function(input, output, session) {
observe({
shiny::showModal(
shiny::modalDialog(
fluidRow(
column(
width = 6,
shiny::textInput(
"state",
"State",
width = "100%",
placeholder = "California"
)),
column(
width = 6,
shinyWidgets::pickerInput(
"country",
"Country",
choices = choiceVec,
width = "100%",
# selected = "us",
options = list(
title = "Select Country",
`live-search` = TRUE)
)
)),
title = "Address",
footer = tags$span(
shiny::actionButton(
'account_page',
'Next'
)
),
size = 'm'
)
)
mydf <- reactive({
list(
state = input$state,
country = input$country
)
})
})
return( list(mydf(), reactive({ input$account_page }) ))
})
}
ui <- fluidPage(
actionLink(
"go_to",
"Click Me",
icon = icon("credit-card")
),
address_ui("user_info")
)
server <- function(input, output, session) {
user_details_return <- address_server(
id = "user_info",
signin = 1
)
}
shinyApp(ui, server)
库(闪亮)
图书馆(shinyWidgets)
choiceVec被动对象mydf()
仅在观察者内部可用。试试这个
library(shiny)
library(shinyWidgets)
choiceVec <- c("Beef/Pork" = "beefpork","Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit")
address_ui <- function(id) {ns <- NS(id)
verbatimTextOutput(ns("t1")) }
address_server <- function(id, signin = reactive(0)) {
moduleServer(id, function(input, output, session) {
ns <- session$ns
observe({
shiny::showModal(
shiny::modalDialog(
fluidRow(
column(
width = 6,
shiny::textInput(
ns("state"),
"State",
width = "100%",
placeholder = "California"
)),
column(
width = 6,
shinyWidgets::pickerInput(
ns("country"),
"Country",
choices = choiceVec,
width = "100%",
# selected = "us",
options = list(
title = "Select Country",
`live-search` = TRUE)
)
)),
title = "Address",
footer = tags$span(
shiny::actionButton(
ns('account_page'),
'Next'
)
),
size = 'm'
)
)
mydf <- reactive({
list(
state = input$state,
country = input$country
)
})
observeEvent(input$account_page, {
removeModal()
return( list(mydf(), reactive({ input$account_page }) ))
})
output$t1 <- renderPrint({
mydf()
})
})
})
}
ui <- fluidPage(
actionLink(
"go_to",
"Click Me",
icon = icon("credit-card")
),
address_ui("user_info")
)
server <- function(input, output, session) {
user_details_return <- address_server(
id = "user_info",
signin = 1
)
}
shinyApp(ui, server)
observe({return( list(mydf(), reactive({ input$account_page }) )) })
observeEvent(input$account_page, {
removeModal()
})