当结合可反应时,串扰使滚动条在flexdashboard中不可见。

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

我使用的是excelent crosstalk r package 来为我的可反应的htmlwidget制作过滤器。我将reactable显示在 flexdashboard. 当使用 groupBy 的特点 reactable我注意到,没有滚动条,当我使表比它已被放置的区域大。

下面是一个例子,Tha有助于使这个问题清楚。

---
title: "Focal Chart (Top)"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
---

Row {data-height=500}
-------------------------------------

### Chart 1

```{r}
library(crosstalk)
library(reactable)

```

Row {data-height=500}
-------------------------------------

### With crosstalk filtering

```{r}
cars <- MASS::Cars93[1:20, c("Manufacturer", "Model", "Type", "Price")]
data <- SharedData$new(cars)

bscols(
  widths = c(3, 9),
  list(
    filter_checkbox("type", "Type", data, ~Type),
    filter_slider("price", "Price", data, ~Price, width = "100%"),
    filter_select("mfr", "Manufacturer", data, ~Manufacturer)
  ),
  reactable(data,groupBy = "Manufacturer")
)
```   

### Without crosstalk

```{r}
 reactable(data,groupBy = "Manufacturer")
```

两个表格显示。当decollapsing e.g. Chevrolet在两个表中,在右边的一个(没有串扰过滤的)滚动条将出现。但在左边的表格中,则不会出现滚动条。

我怎样才能使我的串扰可滚动?这个问题可以解决吗?非常感谢

r flexdashboard htmlwidgets crosstalk
1个回答
2
投票

我不认为这是一个完整的答案,但它可能会让你更接近。我夸大了minWidth,所以你可以看到效果。

sticky_style <- list(position = "sticky", left = 0, background = "#fff", zIndex = 1,
                     borderRight = "1px solid #eee")


crosstalk::bscols(
  widths = c(3, 9),
  list(
    filter_checkbox("type", "Type", data, ~Type),
    filter_slider("price", "Price", data, ~Price, width = "100%"),
    filter_select("mfr", "Manufacturer", data, ~Manufacturer)
  ),
  reactable(data,columns = list(
    Manufacturer = colDef(
      style = sticky_style,
      headerStyle = sticky_style
    )
  ),  defaultColDef = colDef(minWidth = 300))
)

顺便说一下,@DanielJachetta,我有同样的问题,所以更新了crosstalk和reactable包,问题就消失了。祝您好运。

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