选项卡集无法为 Quarto Revealjs 演示正确呈现数据表

问题描述 投票:0回答:1

我正在使用 Revealjs 在四开本中进行演示。我希望每张幻灯片都包含一个带有多个选项卡的面板选项卡集,每个选项卡都包含一个数据表。当我查看渲染的 HTML 文档时,多个数据表无法加载。具体来说,每个页面上的第一个选项卡将始终加载,第一张幻灯片上的所有选项卡也将始终加载,但其他选项卡似乎是随机加载和错过的。 HTML 源代码清楚地构建了数据表,它们只是没有加载。如果我刷新丢失数据表之一的选项卡上的 HTML 文档,它将显示出来(并且可能会使一些邻居也出现,但其他人会消失)。我已经在两个浏览器和两个操作系统平台上对此进行了测试,并且该行为仍然存在。

这是一个可重现的示例。渲染后,打开 HTML 输出并查看第 3 页上的选项卡 2 和 3,您应该明白我的意思。

---
format: 
  revealjs

execute:
    echo: false
    message: false
---

```{r}
#| label: load-packages
#| include: false

library(tidyverse)
library(DT)

options(dplyr.summarise.inform = FALSE)
```


# Data prep

```{r echo=TRUE}
dat1 <- diamonds %>%
  group_by(cut) %>%
  summarize(n = n(), price = round(mean(price), 2))
dat2 <- diamonds %>%
  group_by(carat) %>%
  summarize(n = n(), price = round(mean(price), 2))
dat3 <- diamonds %>%
  group_by(clarity) %>%
  summarize(n = n(), price = round(mean(price), 2))
```


## Page 1

::: panel-tabset

### Tab 1

```{r}
#| label: tab-1-1
datatable(dat1)
```

### Tab 2

```{r}
#| label: tab-1-2
datatable(dat2)
```

### Tab 3

```{r}
#| label: tab-1-3
datatable(dat3)
```

:::

## Page 2

::: panel-tabset

### Tab 1

```{r}
#| label: tab-2-1
datatable(dat3)
```

### Tab 2

```{r}
#| label: tab-2-2
datatable(dat1)
```

### Tab 3

```{r}
#| label: tab-2-3
datatable(dat2)
```

:::

## Page 3

::: panel-tabset

### Tab 1

```{r}
#| label: tab-3-1
datatable(dat3)
```

### Tab 2

```{r}
#| label: tab-3-2
datatable(dat1)
```

### Tab 3

```{r}
#| label: tab-3-3
datatable(dat2)
```

:::

刷新前的结果:enter image description here

刷新后结果:enter image description here

r tabs dt quarto reveal.js
1个回答
3
投票

嗯,我找到了问题的根源;为了将来遇到这个问题的其他人,回答我自己的问题。

根据 2016 年的此讨论,编写

DT
包是为了推迟渲染,直到表格可见。当我编译演示文稿,然后编辑“datatables.js”文档以注释掉第 73-76 行时,问题就消失了。 我将联系软件包作者解决这个问题,但考虑到这个问题已经在六年前提出但没有任何效果,所以可能不会有任何结果。作为短期修复,我克隆了包存储库并自己注释掉了这些行,并将其作为重命名的包加载到我的脚本中,其其他功能与

DT

相同。

    

© www.soinside.com 2019 - 2024. All rights reserved.