AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 77993697
Accepted
ismirsehregal
ismirsehregal
Asked: 2024-02-14 18:44:45 +0800 CST2024-02-14 18:44:45 +0800 CST 2024-02-14 18:44:45 +0800 CST

Erro em init.ts ao usar o parâmetro de grade do jsTreeR

  • 772

Já levantei a questão aqui e aqui . Até agora existe uma solução alternativa , mas ainda não entendo a causa raiz.

Ao executar o seguinte aplicativo usando a versão mais recente do CRAN library(shiny)e library(jsTreeR)(2.5.0) após redimensionar a janela do navegador, esse erro pode ser visto no console do navegador:

imagem

Aplicativo de exemplo:

library(jsTreeR)
library(shiny)

nodes <- list(
  list(
    text = "Fruits",
    type = "fruit",
    children = list(
      list(
        text = "Apple",
        type = "fruit",
        data = list(
          quantity = 20
        )
      ),
      list(
        text = "Banana",
        type = "fruit",
        data = list(
          quantity = 31
        )
      ),
      list(
        text = "Grapes",
        type = "fruit",
        data = list(
          quantity = 34
        )
      )
    ),
    state = list(
      opened = TRUE
    )
  )
)

grid <- list(
  columns = list(
    list(
      width = 200,
      header = "Product"
    ),
    list(
      width = 150,
      value = "quantity",
      header = "Quantity"
    )
  )
)

ui <-   fluidPage(
  titlePanel("jsTree grid"),
  jstreeOutput("jstree")
)

server <-   function(input, output, session){
  output$jstree <- renderJstree(jstree(nodes, search = TRUE, grid = grid))
}

shinyApp(ui, server)

Este é apenas o caso quando jstreeé fornecido com o gridparâmetro.

@StéphaneLaurent identificou que a classe shiny-bound-outputestá atribuída ao jstree-grid-wrapperdiv que causa o problema e que removê-la evita o erro.

Gostaria de entender por que essa classe foi adicionada e se existe uma maneira adequada de implementar o gridparâmetro sem encontrar esse problema.

  • 1 1 respostas
  • 40 Views

1 respostas

  • Voted
  1. Best Answer
    Stéphane Laurent
    2024-02-14T19:17:21+08:002024-02-14T19:17:21+08:00

    Acho que a resposta está no arquivo jstreegrid.js , no listener do ready.jstreeevento, código começando na linha 493:

    .on(
      "ready.jstree",
      $.proxy(function (e, data) {
        // find the line-height of the first known node
        var anchorHeight = this.element
            .find("[class~='jstree-anchor']:first")
            .outerHeight(),
          q,
          cls = this.element.attr("class") || "";
        $(
          '<style type="text/css">div.jstree-grid-cell-root-' +
            this.rootid +
            " {line-height: " +
            anchorHeight +
            "px; height: " +
            anchorHeight +
            "px;}</style>"
        ).appendTo("head");
    
        // add container classes to the wrapper - EXCEPT those that are added by jstree, i.e. "jstree" and "jstree-*"
        q = cls.split(/\s+/).map(function (i) {
          var match = i.match(/^jstree(-|$)/);
          return match ? "" : i;
        });
        this.gridWrapper.addClass(q.join(" "));
      }, this)
    );
    

    Neste código, cls = this.element.attr("class")é a sequência de caracteres composta por todas as classes atribuídas à árvore, separadas por um espaço em branco. Em seguida q = cls.split(/\s+/).map(..., é o array de todas essas classes, exceto a jstreeclasse e as classes iniciadas com jstree-, e essas classes são então adicionadas à grade (a jstree-grid-wrapperdiv). E então vejo duas possibilidades:

    • nesta fase, a árvore já possui a shiny-bound-outputclasse, que então é adicionada à grade;

    • ou a árvore ainda não tem a shiny-bound-outputclasse, mas tem a classe jstreer, e então o htmlwidgets adiciona a classe shiny-bound-outputa todos os elementos que possuem a jstreerclasse.


    Editar

    Acabei de verificar e a árvore tem as duas classes shiny-bound-outpute jstreerneste estágio.

    Uma possível solução é modificar o jstreegrid.js para que ele não copie essas classes para a grade. Na verdade não vejo outra solução.

    • 1

relate perguntas

  • Adicionar número de série para atividade de cópia ao blob

  • A fonte dinâmica do empacotador duplica artefatos

  • Selecione linhas por grupo com 1s consecutivos

  • Lista de chamada de API de gráfico subscritoSkus estados Privilégios insuficientes enquanto os privilégios são concedidos

  • Função para criar DFs separados com base no valor da coluna

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle?

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Quando devo usar um std::inplace_vector em vez de um std::vector?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Martin Hope
    Aleksandr Dubinsky Por que a correspondência de padrões com o switch no InetAddress falha com 'não cobre todos os valores de entrada possíveis'? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer Quando devo usar um std::inplace_vector em vez de um std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB Por que o GCC gera código que executa condicionalmente uma implementação SIMD? 2024-02-17 06:17:14 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve