Я могу создать svg и все его дочерние компоненты (например, прямоугольник и т. Д.), Используя js в приложенииact.Однако я не могу дать атрибут ref для элемента.Если я вижу сгенерированный исходный код, его ref = [object Object], поэтому он не работает.Код вызывается в componentDidMount, после appendChild.Так что это должно работать, потому что оно уже отрисовано в DOM (не так ли?).ref отлично работает с элементами SVG (если не создан динамически).Может кто-нибудь направить меня в правильном направлении?
Даже используя функцию createElement React works: React.createElement ('rect', {key: "myKey", ширина: 100, высота: 100, ref: myRef}) Но он не создает реального DOM-узла, который можно использовать с функцией appendChild (об этом говорится в сообщении об ошибке).Так что я тоже не могу этим пользоваться.clipPathRef.current возвращает содержащий элемент clipPath, который работает, конечно.Прямоугольный элемент создан и визуализирован, просто у него нет правильной ссылки.
const myRef = React.createRef();
const newElement = document.createElementNS("http://www.w3.org/2000/svg", 'rect');
newElement.setAttribute("width", 100);
newElement.setAttribute("height", 100);
clipPathRef.current.appendChild(newElement);
newElement.setAttribute("ref", myRef);
console.log(myRef);//outputs [current null]