У меня есть модель-модель backbonejs, содержащая модели для узлов JSPlumb (ID, parentID). Представление DOM обрабатывается React (divs with Endpoints). Если я удалю модель из коллекции:Как удалить JSPlumb-элемент в среде React/Backbone?
nodeCollection.remove(aNodeModel)
он удаляется из DOM со всеми компонентами - приятно.
Если теперь добавить новый узел, конечная точка не будет добавлена. Я отслеживал этот вопрос вплоть до некоторых внутренних органов в JSPlumb: Если я делаю
jsPlumb.remove(aNodeModel.id)
конечная точка-проблема исчезает, но я получаю React «Инвариантные Нарушение», потому что aNodeModel
не был удален из nodeCollection.
Если удалить jsPlumb Endpoint вручную, прежде чем удалить модель из коллекции:
jsPlumb.removeAllEndpoints(aNodeModel.id)
проблема остается.
Это как-то похоже на тупик ... Любые предложения?
'nodeCollection.remove' удаляет его из DOM, используя реакцию справа? Но удаляется ли из jsPlumb? Я предполагаю, что React не будет сообщать jsPlumb об обновлении его модели, поскольку он удалил узел в DOM. –
Да, это как раз проблема. Я нашел решение для этого, добавив параметр в метод 'jsPlumb.remove()'. С помощью этого параметра я могу управлять, если элемент фактически удален из DOM. Если я установлю его на 'false', я могу удалить элемент из jsPlumb и удалить его из коллекции модели, управляемой React после этого :-) Я разместил изменения в качестве ответа на этот вопрос. – Benvorth