闪亮的矩阵输入未显示在四开交互式文档中?

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

我使用shinyMatrix包进行矩阵输入。旅馆运转良好,闪闪发光。 但是当我将它用于四开交互式文档时,它没有显示矩阵输入字段。 下面是我的示例代码。 任何帮助表示赞赏。 谢谢。

---
title: "Test Doc"
format:
  html:
    page-layout: full
    
server: shiny
---

```{r,message=FALSE}

library(shiny)
library(shinyMatrix)

```

## Running Code



```{r}
numericInput(inputId = "rt",label = "TestNum",value = 1,min = 0,max = 10,step = 1)
matrixInput(inputId = "mat","testMat",value = matrix(0,3,2),inputClass = "",class = "numeric")

```


```{r}
#| context: server


```

r shiny r-markdown quarto
1个回答
0
投票

我从来没有听说过shinyMatrix,它似乎是一个非常小的实现,因为它是由一个人开发的,仍处于测试阶段并且几乎没有文档,我猜这更多的是对该人的包开发的练习比一个严肃的工具。

经检查,它使用了一个 vue 表类作为前端,这似乎不能被 observableJS (quarto 使用 OJS)直接使用..

如果您想使用四开,这基本上为您提供了两个选项(使用原生闪亮也是一个选项,因为它在那里工作得很好。)

选项1:在shinyMatrix中实现一个可由OJS使用的表类 - 似乎有一个选项可以在

inputClass
函数中指定
matrixInput
参数,但是它没有记录,所以你必须从来源。

选项 2:使用已建立的表格包之一,允许用户编辑。黄金标准是

DT
,它在渲染函数中有一个可编辑标志。
rhandsontable
默认情况下是可编辑的,是 DT 的替代方案。
reactable
也是一个很棒的闪亮包,与四开纸配合得很好,这里值得一提 - 然而遗憾的是它没有提供开箱即用的编辑功能,但可以使用工具提示/对话框使其可编辑或类似的,互联网上有一些例子,但这又意味着需要做一些工作。

这里是四开版选项

DT
rhandsontable
的主要选项,API 类似,并且都提供了数千个自定义项。

---
title: "Test Doc"
format:
  html:
    page-layout: full
    
server: shiny
---

```{r}
#| context: setup
#| include: false
library(rhandsontable)
library(DT)
```

### using DT
```{r}
#| panel: input
DTOutput('tbl')
```


### using rhandsontable
```{r}
#| panel: input
rHandsontableOutput('htbl')
```


```{r}
#| context: server
# datatable
output$tbl = renderDT({
    datatable(matrix(1:10,2,5), editable = T )
    })
# rhansonrtable
output$htbl <- renderRHandsontable({
    rhandsontable(matrix(1:10,2,5))
  })
```

正如您所注意到的,表格的默认渲染是-与shinyMatrix相反-服务器端的。除非表格非常大,否则我没有看到任何缺点,您可以调整它以在浏览器中呈现,..

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