javascript - selectInput 值未在可反应的 Shiny 中更新(Trouble binding-unbiding)
问题描述
我在 Shiny 的 reactable 中有一个 selectInput,但输入没有更新。我想做这样的事情,但可以反应:
library(shiny)
library(tidyverse)
library(reactable)
runApp(list(
ui = basicPage(
h2("Table Data"),
reactableOutput("tbl_react_mtcars"),
h2("Selected"),
textOutput("tbl_mtcars")
),
server = function(input, output) {
output$tbl_react_mtcars <- renderReactable({
mtcars %>%
slice(1) %>%
as_tibble() %>%
select(1:4) %>%
mutate(list = as.character(selectInput(inputId = "list_1", label = NULL, choices = 1:5))) %>%
reactable(columns = list(
list = colDef(html = T, align = "center")
))
})
output$tbl_mtcars <- renderText({
if(is.null(input$list_1)){
NA
} else{
input$list_1
}
})
}
)
)
解决方案
这是一种方法:
library(shiny)
library(reactable)
js <- "
$(document).on('shiny:value', function(e) {
if(e.name === 'rtbl'){
setTimeout(function(){Shiny.bindAll(document.getElementById('rtbl'))}, 0);
}
});
"
ui <- basicPage(
tags$head(tags$script(js)),
h2("Table Data"),
reactableOutput("rtbl"),
h2("Selected"),
textOutput("selection")
)
dat <- iris[1:5,]
dat$select <- c(
as.character(selectInput(inputId = "list_1", label = NULL, choices = 1:5)),
rep("", 4)
)
server <- function(input, output, session){
output$rtbl <- renderReactable({
reactable(dat, columns = list(
select = colDef(html = TRUE, align = "center")
))
})
output$selection <- renderText({
if(is.null(input$list_1)){
NA
}else{
input$list_1
}
})
}
shinyApp(ui, server)
推荐阅读
- ruby-on-rails - 自我速记的行为方式与 class << self rails 不同
- php - 按自定义列 WooCommerce 中的可点击值过滤产品
- reactjs - 带有 getStaticProps 和 typescript 的空对象
- c++ - Qt 线程事件循环不分派自创信号
- javascript - clearInterval "变量未定义" |
- json - Ingress-Nginx 外部身份验证的自定义响应
- oracle-apex - invoke() 方法接受哪些参数?
- amazon-web-services - 通过 OPENID 授权颁发 IAM 用户
- ssh - 无法通过新 GitLab 容器上的 ssh 密钥进行身份验证
- swift - IB中viewController上的黑屏,Xcode 12.4