【发布时间】:2019-03-12 20:24:50
【问题描述】:
问题
在我的代码中,我想在modal 中显示rhandsontable。当我第一次显示模态时,表格很好地呈现。但是,当我关闭模式并重新打开它(不更改基础数据)时,我只能看到表格的一部分。只有在我点击表格后,它才能再次正确呈现。如果数据在重新打开 modal 之前发生变化,表格会再次很好地呈现。
问题
我怎样才能避免这种情况?是否有一个 javascript 例程我可以调用以强制 handsontable 重新渲染作为解决方法?
Reprex
library(shiny)
library(rhandsontable)
ui <- fluidPage(actionButton("show", "show"),
actionButton("change", "Change"))
server <- function(input, output, session) {
dat <- reactiveVal(data.frame(x = runif(2),
y = runif(2)))
observeEvent(input$show, {
showModal(modalDialog(rHandsontableOutput("hot")))
})
observeEvent(input$change, dat(data.frame(x = runif(2),
y = runif(2))))
output$hot <- renderRHandsontable(rhandsontable(dat()))
}
如何重现错误
- 打开和关闭模式
- 重新打开模态框,你会看到它也没有正确渲染
- 再次关闭并刷新数据
- 重新打开模态框,看到它再次正确呈现
截图
环境
R version 3.5.0 (2018-04-23)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252
[3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] shiny_1.1.0 rhandsontable_0.3.6
loaded via a namespace (and not attached):
[1] Rcpp_0.12.17 digest_0.6.15 later_0.7.2 mime_0.5
[5] R6_2.2.2 xtable_1.8-2 jsonlite_1.5 magrittr_1.5
[9] rlang_0.2.1 promises_1.0.1 tools_3.5.0 htmlwidgets_1.2
[13] httpuv_1.4.3 yaml_2.1.19 compiler_3.5.0 htmltools_0.3.6
浏览器测试:Chrome 版本 69.0.3497.100,IE 11
【问题讨论】:
-
对我来说似乎是一个错误。使用
outputOptions(output, "hot", suspendWhenHidden=F)没有帮助。我认为已经有一个github issue。
标签: r shiny handsontable rhandsontable