shinyjs::enable UI 闪亮应用程序启动时的小部件
shinyjs::enable UI widget on shiny app launch
我正在使用 shinyjs
启用和禁用 UI 小部件 (inputId="check_buttons"
)。目前,该小部件仅在用户单击转到按钮 (input$go
) 后启用。是否可以在启动应用程序时默认启用 UI 小部件 check_buttons
?
observeEvent(input$go,
{
shinyjs::enable("check_buttons")
})
observeEvent({input$select_box_input
input$radio_button_input
},
{
shinyjs::disable("check_buttons")
})
问题是 observeEvent
在 input$select_box_input
/input$radio_button_input
小部件初始化时触发禁用 check_buttons
小部件。您可以使用 observeEvent
的 ignoreInit
参数绕过此行为:
ignoreInit
If TRUE, then, when this observeEvent is first created/initialized, ignore the handlerExpr (the second argument), whether it is otherwise supposed to run or not. The default is FALSE. See Details.
实施行为的最小示例:
library(shiny)
library(shinyjs)
shinyApp(
shinyUI(
fluidPage(
shinyjs::useShinyjs(),
actionButton('go', 'go'),
radioButtons('radio_button_input', 'radio', choices = c('a','b')),
checkboxInput('select_box_input', 'check', value=TRUE),
checkboxGroupInput('check_buttons', 'boxes', choices = c('1','2'))
)
),
shinyServer(function(input, output, session) {
observeEvent(input$go, {
shinyjs::enable("check_buttons")
})
observeEvent({
input$radio_button_input
input$select_box_input
}, {
shinyjs::disable("check_buttons")
}, ignoreInit = TRUE)
})
)
我正在使用 shinyjs
启用和禁用 UI 小部件 (inputId="check_buttons"
)。目前,该小部件仅在用户单击转到按钮 (input$go
) 后启用。是否可以在启动应用程序时默认启用 UI 小部件 check_buttons
?
observeEvent(input$go,
{
shinyjs::enable("check_buttons")
})
observeEvent({input$select_box_input
input$radio_button_input
},
{
shinyjs::disable("check_buttons")
})
问题是 observeEvent
在 input$select_box_input
/input$radio_button_input
小部件初始化时触发禁用 check_buttons
小部件。您可以使用 observeEvent
的 ignoreInit
参数绕过此行为:
ignoreInit
If TRUE, then, when this observeEvent is first created/initialized, ignore the handlerExpr (the second argument), whether it is otherwise supposed to run or not. The default is FALSE. See Details.
实施行为的最小示例:
library(shiny)
library(shinyjs)
shinyApp(
shinyUI(
fluidPage(
shinyjs::useShinyjs(),
actionButton('go', 'go'),
radioButtons('radio_button_input', 'radio', choices = c('a','b')),
checkboxInput('select_box_input', 'check', value=TRUE),
checkboxGroupInput('check_buttons', 'boxes', choices = c('1','2'))
)
),
shinyServer(function(input, output, session) {
observeEvent(input$go, {
shinyjs::enable("check_buttons")
})
observeEvent({
input$radio_button_input
input$select_box_input
}, {
shinyjs::disable("check_buttons")
}, ignoreInit = TRUE)
})
)