Ошибка Cytoscape и react- cytoscape.js-expand-collapse

#reactjs #cytoscape.js

#reactjs #cytoscape.js

Вопрос:

Привет, я использую react cytoscape с макетом COSBilkent, я также импортировал cytoscape-expand-collapse. Когда я нажимаю на значок для сворачивания, я получаю ошибку: Uncaught TypeError: cy.undoRedo не является функцией. Кто-нибудь знает, почему, ниже мой код:

 import COSEBilkent from 'cytoscape-cose-bilkent';
import React, { useRef, useEffect, useState } from 'react';
import CytoscapeComponent from 'react-cytoscapejs';
import expandCollapse from 'cytoscape-expand-collapse';

import elements from './data';

expandCollapse(Cytoscape);
Cytoscape.use(COSEBilkent);

const Test = ({}) => {
  const [cy, setCy] = useState(null);

  useEffect(() => {
    if (cy) {
      cy.expandCollapse();
    }
  });
  const layout = { name: 'cose-bilkent' };

  return (
    <CytoscapeComponent
      cy={cy => {
        setCy(cy);
      }}
      layout={layout}
      elements={elements}
      style={{ width: '600px', height: '600px' }}
    />
  );
};

export default Test;
  

Комментарии:

1. Вы пытались импортировать отмену / повтор? Расширение expand-collapse иногда использует функцию отмены / повтора, даже в одном из (ванильных cytoscape.js ) [примеры] ( github.com/iVis-at-Bilkent/cytoscape.js-expand-collapse/blob /… ). Я бы посоветовал вам изменить порядок импорта, чтобы свести к минимуму возможные ошибки.

2. Хорошо, я проверил, оказалось, что существует 2 версии отмены-повтора; / Не могли бы вы, пожалуйста, сказать мне, что вы имеете в виду, говоря «Я бы посоветовал вам изменить порядок импорта, чтобы минимизировать возможные ошибки».??

3. Предоставленная мной ссылка показывает demo.html для расширения expand-collapse. Вы можете импортировать свои зависимости (cytoscape-react, cose-bilkent, expand-collapse и так далее) в порядке demo.html импортирует их в head. Сначала cytoscape, затем cose-bilkent, затем отменить-повторить и, наконец, развернуть-свернуть